blob: a33f028151747ebc841da98d9a5de2b6361e6a70 [file] [log] [blame]
Rohit kumar4ea92b12019-02-01 18:05:33 +05301/* Copyright (c) 2012-2019, 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} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530659 /* VOIP */
660 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
661 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
662 /* AFE_RX */
663 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
664 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
665 /* AFE_TX */
666 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
667 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
668 /* VOICE_STUB */
669 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
670 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530671 /* DTMF_RX */
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 /* QCHAT */
675 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
676 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
677 /* VOLTE_STUB */
678 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
679 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
680 /* LSM1 */
681 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
682 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
683 /* LSM2 */
684 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
685 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
686 /* LSM3 */
687 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
688 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
689 /* LSM4 */
690 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
691 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
692 /* LSM5 */
693 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
694 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
695 /* LSM6 */
696 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
697 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
698 /* LSM7 */
699 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
700 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
701 /* LSM8 */
702 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
703 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
704 /* VOICE2_STUB */
705 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
706 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530707 /* VOICEMMODE1 */
708 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
709 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
710 /* VOICEMMODE2 */
711 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
712 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
713};
714
715static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
716 [MSM_BACKEND_DAI_MAX];
717static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
718static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
719static struct msm_pcm_stream_app_type_cfg
720 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
721
722static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
723
724/* The caller of this should aqcuire routing lock */
725void msm_pcm_routing_get_bedai_info(int be_idx,
726 struct msm_pcm_routing_bdai_data *be_dai)
727{
728 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
729 memcpy(be_dai, &msm_bedais[be_idx],
730 sizeof(struct msm_pcm_routing_bdai_data));
731}
732
733/* The caller of this should aqcuire routing lock */
734void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
735 struct msm_pcm_routing_fdai_data *fe_dai)
736{
737 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
738 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
739 sizeof(struct msm_pcm_routing_fdai_data));
740}
741
742void msm_pcm_routing_acquire_lock(void)
743{
744 mutex_lock(&routing_lock);
745}
746
747void msm_pcm_routing_release_lock(void)
748{
749 mutex_unlock(&routing_lock);
750}
751
752static int msm_pcm_routing_get_app_type_idx(int app_type)
753{
754 int idx;
755
756 pr_debug("%s: app_type: %d\n", __func__, app_type);
757 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
758 if (app_type_cfg[idx].app_type == app_type)
759 return idx;
760 }
761 pr_info("%s: App type not available, fallback to default\n", __func__);
762 return 0;
763}
764
765static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
766{
767 int idx;
768
769 pr_debug("%s: app_type: %d\n", __func__, app_type);
770 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
771 if (lsm_app_type_cfg[idx].app_type == app_type)
772 return idx;
773 }
774 pr_debug("%s: App type not available, fallback to default\n", __func__);
775 return 0;
776}
777
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +0530778static int get_port_id(int port_id)
779{
780 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
781}
782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530783static bool is_mm_lsm_fe_id(int fe_id)
784{
785 bool rc = true;
786
787 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
788 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
789 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
790 rc = false;
791 }
792 return rc;
793}
794
Dhanalakshmi Siddani040e0262018-11-26 23:01:26 +0530795/*
796 * msm_pcm_routing_send_chmix_cfg
797 *
798 * Receives fe_id, ip_channel_cnt, op_channel_cnt, channel weight, session_type
799 * use_default_chmap and channel map to map in channel mixer and send to
800 * adm programmable matrix.
801 *
802 * fe_id - Passed value, frontend id which is wanted
803 * ip_channel_cnt - Passed value, number of input channels
804 * op_channel_cnt - Passed value, number of output channels
805 * ch_wght_coeff - Passed reference, weights for each output channel
806 * session_type - Passed value, session_type for RX or TX
807 * use_default_chmap - true if default channel map to be used
808 * ch_map - input/output channel map for playback/capture session respectively
809 */
810
811int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
812 int op_channel_cnt, int *ch_wght_coeff,
813 int session_type, bool use_default_chmap,
814 char *channel_map)
815{
816 int rc = 0, idx = 0, i, j;
817 int be_index = 0, port_id, index = 0;
818 unsigned int session_id = 0;
819
820 pr_debug("%s: fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d]\n",
821 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type);
822
823 if (!use_default_chmap && (channel_map == NULL)) {
824 pr_err("%s: No valid chan map and can't use default\n",
825 __func__);
826 return -EINVAL;
827 }
828
829 if ((ch_wght_coeff == NULL) || (op_channel_cnt > ADM_MAX_CHANNELS) ||
830 (ip_channel_cnt > ADM_MAX_CHANNELS)) {
831 pr_err("%s: Invalid channels or null coefficients\n", __func__);
832 return -EINVAL;
833 }
834
835 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
836 port_id = msm_bedais[be_index].port_id;
837 if (!msm_bedais[be_index].active ||
838 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
839 continue;
840
841 session_id = fe_dai_map[fe_id][session_type].strm_id;
842 channel_mixer[fe_id].input_channels[0] = ip_channel_cnt;
843 channel_mixer[fe_id].output_channel = op_channel_cnt;
844 channel_mixer[fe_id].rule = 0;
845
846 for (j = 0; j < op_channel_cnt; j++) {
847 for (i = 0; i < ip_channel_cnt; i++)
848 channel_mixer[fe_id].channel_weight[j][i] =
849 ch_wght_coeff[index++];
850 }
851 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
852 unsigned long copp =
853 session_copp_map[fe_id][session_type][be_index];
854 if (!test_bit(idx, &copp))
855 continue;
856 rc = adm_programable_channel_mixer(port_id,
857 idx, session_id, session_type,
858 channel_mixer + fe_id, 0,
859 use_default_chmap, channel_map);
860 if (rc < 0)
861 pr_err("%s: err setting channel mix config\n",
862 __func__);
863 }
864 }
865 return 0;
866}
867
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530868int msm_pcm_routing_reg_stream_app_type_cfg(
869 int fedai_id, int session_type, int be_id,
870 struct msm_pcm_stream_app_type_cfg *cfg_data)
871{
872 int ret = 0;
873
874 if (cfg_data == NULL) {
875 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
876 ret = -EINVAL;
877 goto done;
878 }
879
880 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
881 __func__, fedai_id, session_type, be_id,
882 cfg_data->app_type, cfg_data->acdb_dev_id,
883 cfg_data->sample_rate);
884
885 if (!is_mm_lsm_fe_id(fedai_id)) {
886 pr_err("%s: Invalid machine driver ID %d\n",
887 __func__, fedai_id);
888 ret = -EINVAL;
889 goto done;
890 }
891 if (session_type != SESSION_TYPE_RX &&
892 session_type != SESSION_TYPE_TX) {
893 pr_err("%s: Invalid session type %d\n",
894 __func__, session_type);
895 ret = -EINVAL;
896 goto done;
897 }
898 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
899 pr_err("%s: Received out of bounds be_id %d\n",
900 __func__, be_id);
901 ret = -EINVAL;
902 goto done;
903 }
904
905 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
906
907 /*
908 * Store the BE ID of the configuration information set as the latest so
909 * the get mixer control knows what to return.
910 */
911 last_be_id_configured[fedai_id][session_type] = be_id;
912
913done:
914 return ret;
915}
916EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
917
918/**
919 * msm_pcm_routing_get_stream_app_type_cfg
920 *
921 * Receives fedai_id, session_type, be_id, and populates app_type,
922 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
923 * -EINVAL and does not alter passed values.
924 *
925 * fedai_id - Passed value, front end ID for which app type config is wanted
926 * session_type - Passed value, session type for which app type config
927 * is wanted
928 * be_id - Returned value, back end device id the app type config data is for
929 * cfg_data - Returned value, configuration data used by app type config
930 */
931int msm_pcm_routing_get_stream_app_type_cfg(
932 int fedai_id, int session_type, int *bedai_id,
933 struct msm_pcm_stream_app_type_cfg *cfg_data)
934{
935 int be_id;
936 int ret = 0;
937
938 if (bedai_id == NULL) {
939 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
940 ret = -EINVAL;
941 goto done;
942 } else if (cfg_data == NULL) {
943 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
944 ret = -EINVAL;
945 goto done;
946 } else if (!is_mm_lsm_fe_id(fedai_id)) {
947 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
948 ret = -EINVAL;
949 goto done;
950 } else if (session_type != SESSION_TYPE_RX &&
951 session_type != SESSION_TYPE_TX) {
952 pr_err("%s: Invalid session type %d\n", __func__, session_type);
953 ret = -EINVAL;
954 goto done;
955 }
956
957 be_id = last_be_id_configured[fedai_id][session_type];
958 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
959 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
960 ret = -EINVAL;
961 goto done;
962 }
963
964 *bedai_id = be_id;
965 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
966 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
967 __func__, fedai_id, session_type, *bedai_id,
968 cfg_data->app_type, cfg_data->acdb_dev_id,
969 cfg_data->sample_rate);
970done:
971 return ret;
972}
973EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
974
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530975static struct cal_block_data *msm_routing_find_topology_by_path(int path,
976 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530977{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530978 struct list_head *ptr, *next;
979 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530980 pr_debug("%s\n", __func__);
981
982 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530983 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530984
985 cal_block = list_entry(ptr,
986 struct cal_block_data, list);
987
Vikram Pandurangad3b58cc2017-09-27 12:17:36 -0700988 if (cal_utils_is_cal_stale(cal_block))
989 continue;
990
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530991 if (((struct audio_cal_info_adm_top *)cal_block
992 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530993 return cal_block;
994 }
995 }
996 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
997 return NULL;
998}
999
1000static struct cal_block_data *msm_routing_find_topology(int path,
1001 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301002 int acdb_id,
Haynes Mathew Georged3af1eb2018-06-08 17:26:24 -07001003 int cal_index,
1004 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301005{
1006 struct list_head *ptr, *next;
1007 struct cal_block_data *cal_block = NULL;
1008 struct audio_cal_info_adm_top *cal_info;
1009
1010 pr_debug("%s\n", __func__);
1011
1012 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301013 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301014
1015 cal_block = list_entry(ptr,
1016 struct cal_block_data, list);
1017
Vikram Pandurangad3b58cc2017-09-27 12:17:36 -07001018 if (cal_utils_is_cal_stale(cal_block))
1019 continue;
1020
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301021 cal_info = (struct audio_cal_info_adm_top *)
1022 cal_block->cal_info;
1023 if ((cal_info->path == path) &&
1024 (cal_info->app_type == app_type) &&
1025 (cal_info->acdb_id == acdb_id)) {
1026 return cal_block;
1027 }
1028 }
Haynes Mathew Georged3af1eb2018-06-08 17:26:24 -07001029 pr_debug("%s: Can't find topology for path %d, app %d, "
1030 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1031 exact ? "fail" : "defaulting to search by path");
1032 return exact ? NULL : msm_routing_find_topology_by_path(path,
1033 cal_index);
1034}
1035
1036static int msm_routing_find_topology_on_index(int session_type, int app_type,
1037 int acdb_dev_id, int idx,
1038 bool exact)
1039{
1040 int topology = -EINVAL;
1041 struct cal_block_data *cal_block = NULL;
1042
1043 mutex_lock(&cal_data[idx]->lock);
1044 cal_block = msm_routing_find_topology(session_type, app_type,
1045 acdb_dev_id, idx, exact);
1046 if (cal_block != NULL) {
1047 topology = ((struct audio_cal_info_adm_top *)
1048 cal_block->cal_info)->topology;
1049 }
1050 mutex_unlock(&cal_data[idx]->lock);
1051 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301052}
1053
Vikram Pandurangad3b58cc2017-09-27 12:17:36 -07001054/*
1055 * Retrieving cal_block will mark cal_block as stale.
1056 * Hence it cannot be reused or resent unless the flag
1057 * is reset.
1058 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301059static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1060 int be_id)
1061{
1062 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301063 int app_type = 0, acdb_dev_id = 0;
1064
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301065 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1066 __func__, fedai_id, session_type, be_id);
1067
1068 if (cal_data == NULL)
1069 goto done;
1070
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301071 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1072 acdb_dev_id =
1073 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
Haynes Mathew Georged3af1eb2018-06-08 17:26:24 -07001074 pr_debug("%s: Check for exact LSM topology\n", __func__);
1075 topology = msm_routing_find_topology_on_index(session_type,
1076 app_type,
1077 acdb_dev_id,
1078 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1079 true /*exact*/);
1080 if (topology < 0) {
1081 pr_debug("%s: Check for compatible topology\n", __func__);
1082 topology = msm_routing_find_topology_on_index(session_type,
1083 app_type,
1084 acdb_dev_id,
1085 ADM_TOPOLOGY_CAL_TYPE_IDX,
1086 false /*exact*/);
1087 if (topology < 0)
1088 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301089 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301090done:
1091 pr_debug("%s: Using topology %d\n", __func__, topology);
1092 return topology;
1093}
1094
1095static uint8_t is_be_dai_extproc(int be_dai)
1096{
1097 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1098 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1099 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1100 return 1;
1101 else
1102 return 0;
1103}
1104
1105static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1106 int path_type, int perf_mode,
1107 uint32_t passthr_mode)
1108{
1109 int i, port_type, j, num_copps = 0;
1110 struct route_payload payload;
1111
1112 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1113 path_type == ADM_PATH_COMPRESSED_RX) ?
1114 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1115
1116 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1117 if (!is_be_dai_extproc(i) &&
1118 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1119 (msm_bedais[i].active) &&
1120 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301121 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301122 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1123 unsigned long copp =
1124 session_copp_map[fedai_id][sess_type][i];
1125 if (test_bit(j, &copp)) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301126 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301127 payload.copp_idx[num_copps] = j;
1128 payload.app_type[num_copps] =
1129 fe_dai_app_type_cfg
1130 [fedai_id][sess_type][i]
1131 .app_type;
1132 payload.acdb_dev_id[num_copps] =
1133 fe_dai_app_type_cfg
1134 [fedai_id][sess_type][i]
1135 .acdb_dev_id;
1136 payload.sample_rate[num_copps] =
1137 fe_dai_app_type_cfg
1138 [fedai_id][sess_type][i]
1139 .sample_rate;
1140 num_copps++;
1141 }
1142 }
1143 }
1144 }
1145
1146 if (num_copps) {
1147 payload.num_copps = num_copps;
1148 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1149 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1150 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1151 }
1152}
1153
1154void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1155 int stream_type)
1156{
1157 int i, session_type, path_type, port_type;
1158 u32 mode = 0;
1159
1160 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1161 /* bad ID assigned in machine driver */
1162 pr_err("%s: bad MM ID\n", __func__);
1163 return;
1164 }
1165
1166 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1167 session_type = SESSION_TYPE_RX;
1168 path_type = ADM_PATH_PLAYBACK;
1169 port_type = MSM_AFE_PORT_TYPE_RX;
1170 } else {
1171 session_type = SESSION_TYPE_TX;
1172 path_type = ADM_PATH_LIVE_REC;
1173 port_type = MSM_AFE_PORT_TYPE_TX;
1174 }
1175
1176 mutex_lock(&routing_lock);
1177
1178 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1179 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1180 if (!is_be_dai_extproc(i) &&
1181 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1182 (msm_bedais[i].active) &&
1183 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1184 mode = afe_get_port_type(msm_bedais[i].port_id);
1185 adm_connect_afe_port(mode, dspst_id,
1186 msm_bedais[i].port_id);
1187 break;
1188 }
1189 }
1190 mutex_unlock(&routing_lock);
1191}
1192
1193static bool route_check_fe_id_adm_support(int fe_id)
1194{
1195 bool rc = true;
1196
1197 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1198 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1199 /* fe id is listen while port is set to afe */
1200 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1201 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1202 __func__, fe_id, lsm_port_index);
1203 rc = false;
1204 }
1205 }
1206
1207 return rc;
1208}
1209
1210int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1211 int dspst_id, int stream_type,
1212 uint32_t passthr_mode)
1213{
1214 int i, j, session_type, path_type, port_type, topology;
1215 int num_copps = 0;
1216 struct route_payload payload;
1217 u32 channels, sample_rate;
1218 u16 bit_width = 16;
1219 bool is_lsm;
1220
1221 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1222 __func__, fe_id, perf_mode, dspst_id,
1223 stream_type, passthr_mode);
1224 if (!is_mm_lsm_fe_id(fe_id)) {
1225 /* bad ID assigned in machine driver */
1226 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1227 return -EINVAL;
1228 }
1229
1230 if (!route_check_fe_id_adm_support(fe_id)) {
1231 /* ignore adm open if not supported for fe_id */
1232 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1233 return 0;
1234 }
1235
1236 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1237 session_type = SESSION_TYPE_RX;
1238 if (passthr_mode != LEGACY_PCM)
1239 path_type = ADM_PATH_COMPRESSED_RX;
1240 else
1241 path_type = ADM_PATH_PLAYBACK;
1242 port_type = MSM_AFE_PORT_TYPE_RX;
1243 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1244 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301245 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301246 path_type = ADM_PATH_COMPRESSED_TX;
1247 else
1248 path_type = ADM_PATH_LIVE_REC;
1249 port_type = MSM_AFE_PORT_TYPE_TX;
1250 } else {
1251 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1252 return -EINVAL;
1253 }
1254
1255 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1256 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1257 mutex_lock(&routing_lock);
1258
1259 payload.num_copps = 0; /* only RX needs to use payload */
1260 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
1261 /* re-enable EQ if active */
1262 msm_qti_pp_send_eq_values(fe_id);
1263 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1264 if (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))
1265 msm_bedais[i].passthr_mode[fe_id] = passthr_mode;
1266
1267 if (!is_be_dai_extproc(i) &&
1268 (afe_get_port_type(msm_bedais[i].port_id) ==
1269 port_type) &&
1270 (msm_bedais[i].active) &&
1271 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1272 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301273 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301274
1275 /*
1276 * check if ADM needs to be configured with different
1277 * channel mapping than backend
1278 */
1279 if (!msm_bedais[i].adm_override_ch)
1280 channels = msm_bedais[i].channel;
1281 else
1282 channels = msm_bedais[i].adm_override_ch;
1283
1284 bit_width = msm_routing_get_bit_width(
1285 msm_bedais[i].format);
1286 app_type =
1287 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1288 if (app_type && is_lsm) {
1289 app_type_idx =
1290 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1291 sample_rate =
1292 fe_dai_app_type_cfg[fe_id][session_type][i]
1293 .sample_rate;
1294 bit_width =
1295 lsm_app_type_cfg[app_type_idx].bit_width;
1296 } else if (app_type) {
1297 app_type_idx =
1298 msm_pcm_routing_get_app_type_idx(
1299 app_type);
1300 sample_rate =
1301 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1302 bit_width =
1303 app_type_cfg[app_type_idx].bit_width;
1304 } else {
1305 sample_rate = msm_bedais[i].sample_rate;
1306 }
1307 acdb_dev_id =
1308 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1309 topology = msm_routing_get_adm_topology(fe_id,
1310 session_type,
1311 i);
1312 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1313 || (passthr_mode ==
1314 COMPRESSED_PASSTHROUGH_GEN))
1315 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1316 pr_debug("%s: Before adm open topology %d\n", __func__,
1317 topology);
1318
1319 copp_idx =
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301320 adm_open(port_id, path_type, sample_rate,
1321 channels, topology, perf_mode,
1322 bit_width, app_type, acdb_dev_id,
1323 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301324 if ((copp_idx < 0) ||
1325 (copp_idx >= MAX_COPPS_PER_PORT)) {
1326 pr_err("%s:adm open failed coppid:%d\n",
1327 __func__, copp_idx);
1328 mutex_unlock(&routing_lock);
1329 return -EINVAL;
1330 }
1331 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1332 __func__, fe_id, session_type, i);
1333 set_bit(copp_idx,
1334 &session_copp_map[fe_id][session_type][i]);
1335
1336 if (msm_is_resample_needed(
1337 sample_rate,
1338 msm_bedais[i].sample_rate))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301339 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301340 msm_bedais[i].sample_rate);
1341
1342 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1343 unsigned long copp =
1344 session_copp_map[fe_id][session_type][i];
1345 if (test_bit(j, &copp)) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301346 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301347 payload.copp_idx[num_copps] = j;
1348 payload.app_type[num_copps] =
1349 fe_dai_app_type_cfg
1350 [fe_id][session_type][i]
1351 .app_type;
1352 payload.acdb_dev_id[num_copps] =
1353 fe_dai_app_type_cfg
1354 [fe_id][session_type][i]
1355 .acdb_dev_id;
1356 payload.sample_rate[num_copps] =
1357 fe_dai_app_type_cfg
1358 [fe_id][session_type][i]
1359 .sample_rate;
1360 num_copps++;
1361 }
1362 }
1363 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
1364 && passthr_mode !=
1365 COMPRESSED_PASSTHROUGH_GEN) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301366 msm_routing_send_device_pp_params(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301367 copp_idx, fe_id);
1368 }
1369 }
1370 }
1371 if (num_copps) {
1372 payload.num_copps = num_copps;
1373 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1374 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1375 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1376 }
1377 mutex_unlock(&routing_lock);
1378 return 0;
1379}
1380
1381static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1382{
1383 u32 session_id;
1384
1385 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301386 case MSM_FRONTEND_DAI_QCHAT:
1387 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1388 break;
1389 case MSM_FRONTEND_DAI_VOIP:
1390 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1391 break;
1392 case MSM_FRONTEND_DAI_VOICEMMODE1:
1393 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1394 break;
1395 case MSM_FRONTEND_DAI_VOICEMMODE2:
1396 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1397 break;
1398 default:
1399 session_id = 0;
1400 }
1401
1402 pr_debug("%s session_id 0x%x", __func__, session_id);
1403 return session_id;
1404}
1405
1406static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1407 int dspst_id, int stream_type)
1408{
1409 int copp_idx = 0;
1410 int sess_type = 0;
1411 int i = 0, j = 0, be_id;
1412 int ret = 0;
Dhanalakshmi Siddani040e0262018-11-26 23:01:26 +05301413 bool use_default_chmap = true;
1414 char *ch_map = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301415
1416 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1417 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1418 return 0;
1419 }
1420
1421 if (!(channel_mixer[fe_id].enable)) {
1422 pr_debug("%s: channel mixer not enabled for FE %d\n",
1423 __func__, fe_id);
1424 return 0;
1425 }
1426
1427 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1428 sess_type = SESSION_TYPE_RX;
1429 else
1430 sess_type = SESSION_TYPE_TX;
1431
1432 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1433 ++i) {
1434 be_id = channel_input[fe_id][i] - 1;
1435 channel_mixer[fe_id].input_channels[i] =
1436 msm_bedais[be_id].channel;
1437
1438 if ((msm_bedais[be_id].active) &&
1439 test_bit(fe_id,
1440 &msm_bedais[be_id].fe_sessions[0])) {
1441 unsigned long copp =
1442 session_copp_map[fe_id][sess_type][be_id];
1443 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1444 if (test_bit(j, &copp)) {
1445 copp_idx = j;
1446 break;
1447 }
1448 }
1449
1450 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1451 __func__,
1452 fe_id, be_id, msm_bedais[be_id].channel,
1453 copp_idx);
1454 ret = adm_programable_channel_mixer(
1455 msm_bedais[be_id].port_id,
1456 copp_idx, dspst_id, sess_type,
Dhanalakshmi Siddani040e0262018-11-26 23:01:26 +05301457 channel_mixer + fe_id, i,
1458 use_default_chmap, ch_map);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301459 }
1460 }
1461
1462 return ret;
1463}
1464
1465int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1466 int dspst_id, int stream_type)
1467{
1468 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1469 struct route_payload payload;
1470 u32 channels, sample_rate;
1471 uint16_t bits_per_sample = 16;
1472 uint32_t passthr_mode = LEGACY_PCM;
1473 int ret = 0;
1474
1475 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1476 /* bad ID assigned in machine driver */
1477 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1478 return -EINVAL;
1479 }
1480
1481 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1482 session_type = SESSION_TYPE_RX;
1483 path_type = ADM_PATH_PLAYBACK;
1484 port_type = MSM_AFE_PORT_TYPE_RX;
1485 } else {
1486 session_type = SESSION_TYPE_TX;
1487 path_type = ADM_PATH_LIVE_REC;
1488 port_type = MSM_AFE_PORT_TYPE_TX;
1489 }
1490
1491 mutex_lock(&routing_lock);
1492
1493 payload.num_copps = 0; /* only RX needs to use payload */
1494 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1495 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
1496
1497 /* re-enable EQ if active */
1498 msm_qti_pp_send_eq_values(fedai_id);
1499 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1500 if (!is_be_dai_extproc(i) &&
1501 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1502 (msm_bedais[i].active) &&
1503 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1504 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301505 int port_id = get_port_id(msm_bedais[i].port_id);
1506
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301507 /*
1508 * check if ADM needs to be configured with different
1509 * channel mapping than backend
1510 */
1511 if (!msm_bedais[i].adm_override_ch)
1512 channels = msm_bedais[i].channel;
1513 else
1514 channels = msm_bedais[i].adm_override_ch;
1515 msm_bedais[i].passthr_mode[fedai_id] =
1516 LEGACY_PCM;
1517
1518 bits_per_sample = msm_routing_get_bit_width(
1519 msm_bedais[i].format);
1520
1521 app_type =
1522 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1523 if (app_type) {
1524 app_type_idx =
1525 msm_pcm_routing_get_app_type_idx(app_type);
1526 sample_rate =
1527 fe_dai_app_type_cfg[fedai_id][session_type][i]
1528 .sample_rate;
1529 bits_per_sample =
1530 app_type_cfg[app_type_idx].bit_width;
1531 } else
1532 sample_rate = msm_bedais[i].sample_rate;
1533
1534 acdb_dev_id =
1535 fe_dai_app_type_cfg[fedai_id][session_type][i]
1536 .acdb_dev_id;
1537 topology = msm_routing_get_adm_topology(fedai_id,
1538 session_type,
1539 i);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301540 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301541 sample_rate, channels, topology,
1542 perf_mode, bits_per_sample,
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301543 app_type, acdb_dev_id,
1544 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301545 if ((copp_idx < 0) ||
1546 (copp_idx >= MAX_COPPS_PER_PORT)) {
1547 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Pandurangad3b58cc2017-09-27 12:17:36 -07001548 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301549 mutex_unlock(&routing_lock);
1550 return -EINVAL;
1551 }
1552 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1553 __func__, fedai_id, session_type, i);
1554 set_bit(copp_idx,
1555 &session_copp_map[fedai_id][session_type][i]);
1556
1557 if (msm_is_resample_needed(
1558 sample_rate,
1559 msm_bedais[i].sample_rate))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301560 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301561 msm_bedais[i].sample_rate);
1562
1563 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1564 unsigned long copp =
1565 session_copp_map[fedai_id][session_type][i];
1566 if (test_bit(j, &copp)) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301567 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301568 payload.copp_idx[num_copps] = j;
1569 payload.app_type[num_copps] =
1570 fe_dai_app_type_cfg
1571 [fedai_id][session_type]
1572 [i].app_type;
1573 payload.acdb_dev_id[num_copps] =
1574 fe_dai_app_type_cfg
1575 [fedai_id][session_type]
1576 [i].acdb_dev_id;
1577 payload.sample_rate[num_copps] =
1578 fe_dai_app_type_cfg
1579 [fedai_id][session_type]
1580 [i].sample_rate;
1581 num_copps++;
1582 }
1583 }
1584 if ((perf_mode == LEGACY_PCM_MODE) &&
1585 (msm_bedais[i].passthr_mode[fedai_id] ==
1586 LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301587 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1588 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301589 }
1590 }
1591 if (num_copps) {
1592 payload.num_copps = num_copps;
1593 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1594 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1595 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1596 }
1597
1598 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1599 dspst_id, stream_type);
1600 mutex_unlock(&routing_lock);
1601 return ret;
1602}
1603
1604int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1605 int dspst_id, int stream_type,
1606 struct msm_pcm_routing_evt event_info)
1607{
1608 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1609 stream_type)) {
1610 pr_err("%s: failed to reg phy stream\n", __func__);
1611 return -EINVAL;
1612 }
1613
1614 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1615 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1616 else
1617 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1618 return 0;
1619}
1620
1621void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1622{
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301623 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301624 struct msm_pcm_routing_fdai_data *fdai;
1625
1626 if (!is_mm_lsm_fe_id(fedai_id)) {
1627 /* bad ID assigned in machine driver */
1628 pr_err("%s: bad MM ID\n", __func__);
1629 return;
1630 }
1631
1632 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1633 port_type = MSM_AFE_PORT_TYPE_RX;
1634 session_type = SESSION_TYPE_RX;
1635 path_type = ADM_PATH_PLAYBACK;
1636 } else {
1637 port_type = MSM_AFE_PORT_TYPE_TX;
1638 session_type = SESSION_TYPE_TX;
1639 path_type = ADM_PATH_LIVE_REC;
1640 }
1641
1642 mutex_lock(&routing_lock);
1643 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1644 if (!is_be_dai_extproc(i) &&
1645 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1646 (msm_bedais[i].active) &&
1647 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1648 int idx;
1649 unsigned long copp =
1650 session_copp_map[fedai_id][session_type][i];
1651 fdai = &fe_dai_map[fedai_id][session_type];
1652
1653 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1654 if (test_bit(idx, &copp))
1655 break;
1656
1657 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1658 pr_debug("%s: copp idx is invalid, exiting\n",
1659 __func__);
1660 continue;
1661 }
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301662 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301663 topology = adm_get_topology_for_port_copp_idx(
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301664 port_id, idx);
1665 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301666 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1667 __func__, copp, fedai_id, session_type, i);
1668 clear_bit(idx,
1669 &session_copp_map[fedai_id][session_type][i]);
1670 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1671 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1672 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1673 (msm_bedais[i].passthr_mode[fedai_id] ==
1674 LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301675 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301676 }
1677 }
1678
1679 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1680 fe_dai_map[fedai_id][session_type].be_srate = 0;
1681 mutex_unlock(&routing_lock);
1682}
1683
1684/* Check if FE/BE route is set */
1685static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1686{
1687 bool rc = false;
1688
1689 if (!is_mm_lsm_fe_id(fe_id)) {
1690 /* recheck FE ID in the mixer control defined in this file */
1691 pr_err("%s: bad MM ID\n", __func__);
1692 return rc;
1693 }
1694
1695 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1696 rc = true;
1697
1698 return rc;
1699}
1700
1701static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1702{
1703 int session_type, path_type, topology;
1704 u32 channels, sample_rate;
1705 uint16_t bits_per_sample = 16;
1706 struct msm_pcm_routing_fdai_data *fdai;
1707 uint32_t passthr_mode;
1708 bool is_lsm;
1709
1710 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1711
1712 if (!is_mm_lsm_fe_id(val)) {
1713 /* recheck FE ID in the mixer control defined in this file */
1714 pr_err("%s: bad MM ID\n", __func__);
1715 return;
1716 }
1717
1718 if (!route_check_fe_id_adm_support(val)) {
1719 /* ignore adm open if not supported for fe_id */
1720 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1721 return;
1722 }
1723
1724 passthr_mode = msm_bedais[reg].passthr_mode[val];
1725 if (afe_get_port_type(msm_bedais[reg].port_id) ==
1726 MSM_AFE_PORT_TYPE_RX) {
1727 session_type = SESSION_TYPE_RX;
1728 if (passthr_mode != LEGACY_PCM)
1729 path_type = ADM_PATH_COMPRESSED_RX;
1730 else
1731 path_type = ADM_PATH_PLAYBACK;
1732 } else {
1733 session_type = SESSION_TYPE_TX;
Haynes Mathew George9a277722018-01-29 17:34:49 -08001734 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301735 path_type = ADM_PATH_COMPRESSED_TX;
1736 else
1737 path_type = ADM_PATH_LIVE_REC;
1738 }
1739 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1740 (val <= MSM_FRONTEND_DAI_LSM8);
1741
1742 mutex_lock(&routing_lock);
1743 if (set) {
1744 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1745 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1746 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1747 voc_start_playback(set, msm_bedais[reg].port_id);
1748
1749 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1750 fdai = &fe_dai_map[val][session_type];
1751 if (msm_bedais[reg].active && fdai->strm_id !=
1752 INVALID_SESSION) {
1753 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301754 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301755 /*
1756 * check if ADM needs to be configured with different
1757 * channel mapping than backend
1758 */
1759 if (!msm_bedais[reg].adm_override_ch)
1760 channels = msm_bedais[reg].channel;
1761 else
1762 channels = msm_bedais[reg].adm_override_ch;
1763 if (session_type == SESSION_TYPE_TX &&
1764 fdai->be_srate &&
1765 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1766 pr_debug("%s: flush strm %d diff BE rates\n",
1767 __func__, fdai->strm_id);
1768
1769 if (fdai->event_info.event_func)
1770 fdai->event_info.event_func(
1771 MSM_PCM_RT_EVT_BUF_RECFG,
1772 fdai->event_info.priv_data);
1773 fdai->be_srate = 0; /* might not need it */
1774 }
1775
1776 bits_per_sample = msm_routing_get_bit_width(
1777 msm_bedais[reg].format);
1778
1779 app_type =
1780 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1781 if (app_type && is_lsm) {
1782 app_type_idx =
1783 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1784 sample_rate =
1785 fe_dai_app_type_cfg[val][session_type][reg]
1786 .sample_rate;
1787 bits_per_sample =
1788 lsm_app_type_cfg[app_type_idx].bit_width;
1789 } else if (app_type) {
1790 app_type_idx =
1791 msm_pcm_routing_get_app_type_idx(app_type);
1792 sample_rate =
1793 fe_dai_app_type_cfg[val][session_type][reg]
1794 .sample_rate;
1795 bits_per_sample =
1796 app_type_cfg[app_type_idx].bit_width;
1797 } else
1798 sample_rate = msm_bedais[reg].sample_rate;
1799
1800 topology = msm_routing_get_adm_topology(val,
1801 session_type,
1802 reg);
1803 acdb_dev_id =
1804 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301805 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301806 sample_rate, channels, topology,
1807 fdai->perf_mode, bits_per_sample,
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301808 app_type, acdb_dev_id,
1809 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301810 if ((copp_idx < 0) ||
1811 (copp_idx >= MAX_COPPS_PER_PORT)) {
1812 pr_err("%s: adm open failed\n", __func__);
1813 mutex_unlock(&routing_lock);
1814 return;
1815 }
1816 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1817 __func__, val, session_type, reg);
1818 set_bit(copp_idx,
1819 &session_copp_map[val][session_type][reg]);
1820
1821 if (msm_is_resample_needed(
1822 sample_rate,
1823 msm_bedais[reg].sample_rate))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301824 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301825 msm_bedais[reg].sample_rate);
1826
1827 if (session_type == SESSION_TYPE_RX &&
1828 fdai->event_info.event_func)
1829 fdai->event_info.event_func(
1830 MSM_PCM_RT_EVT_DEVSWITCH,
1831 fdai->event_info.priv_data);
1832
1833 msm_pcm_routing_build_matrix(val, session_type,
1834 path_type,
1835 fdai->perf_mode,
1836 passthr_mode);
1837 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1838 (passthr_mode == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301839 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1840 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301841 }
1842 } else {
1843 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1844 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1845 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1846 voc_start_playback(set, msm_bedais[reg].port_id);
1847 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
1848 fdai = &fe_dai_map[val][session_type];
1849 if (msm_bedais[reg].active && fdai->strm_id !=
1850 INVALID_SESSION) {
1851 int idx;
1852 int port_id;
1853 unsigned long copp =
1854 session_copp_map[val][session_type][reg];
1855 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1856 if (test_bit(idx, &copp))
1857 break;
1858
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301859 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301860 topology = adm_get_topology_for_port_copp_idx(port_id,
1861 idx);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301862 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301863 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1864 __func__, copp, val, session_type, reg,
1865 topology);
1866 clear_bit(idx,
1867 &session_copp_map[val][session_type][reg]);
1868 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1869 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1870 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1871 (passthr_mode == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301872 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301873 msm_pcm_routing_build_matrix(val, session_type,
1874 path_type,
1875 fdai->perf_mode,
1876 passthr_mode);
1877 }
1878 }
1879 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1880 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1881 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1882
1883 mutex_unlock(&routing_lock);
1884}
1885
1886static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1887 struct snd_ctl_elem_value *ucontrol)
1888{
1889 struct soc_mixer_control *mc =
1890 (struct soc_mixer_control *)kcontrol->private_value;
1891
Meng Wang007346c2019-10-16 12:52:13 +05301892 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301893 ucontrol->value.integer.value[0] = 1;
1894 else
1895 ucontrol->value.integer.value[0] = 0;
1896
Meng Wang007346c2019-10-16 12:52:13 +05301897 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
1898 mc->shift, mc->rshift,
1899 ucontrol->value.integer.value[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301900
1901 return 0;
1902}
1903
1904static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1905 struct snd_ctl_elem_value *ucontrol)
1906{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301907 struct snd_soc_dapm_widget *widget =
1908 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301909 struct soc_mixer_control *mc =
1910 (struct soc_mixer_control *)kcontrol->private_value;
1911 struct snd_soc_dapm_update *update = NULL;
1912
1913 if (ucontrol->value.integer.value[0] &&
Meng Wang007346c2019-10-16 12:52:13 +05301914 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1915 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301916 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1917 update);
1918 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang007346c2019-10-16 12:52:13 +05301919 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1920 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301921 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1922 update);
1923 }
1924
1925 return 1;
1926}
1927
1928static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
1929 struct snd_ctl_elem_value *ucontrol)
1930{
1931 struct soc_mixer_control *mc =
1932 (struct soc_mixer_control *)kcontrol->private_value;
1933
Meng Wang007346c2019-10-16 12:52:13 +05301934 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301935 ucontrol->value.integer.value[0] = 1;
1936 else
1937 ucontrol->value.integer.value[0] = 0;
1938
Meng Wang007346c2019-10-16 12:52:13 +05301939 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
1940 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301941 ucontrol->value.integer.value[0]);
1942
1943 return 0;
1944}
1945
1946static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
1947 struct snd_ctl_elem_value *ucontrol)
1948{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301949 struct snd_soc_dapm_widget *widget =
1950 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301951 struct soc_mixer_control *mc =
1952 (struct soc_mixer_control *)kcontrol->private_value;
1953 struct snd_soc_dapm_update *update = NULL;
1954
Meng Wang007346c2019-10-16 12:52:13 +05301955 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
1956 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301957 ucontrol->value.integer.value[0]);
1958
1959 if (ucontrol->value.integer.value[0]) {
Meng Wang007346c2019-10-16 12:52:13 +05301960 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift)
1961 == false)
1962 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301963 snd_soc_dapm_mixer_update_power(widget->dapm,
1964 kcontrol, 1, update);
1965 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang007346c2019-10-16 12:52:13 +05301966 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift)
1967 == true)
1968 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301969 snd_soc_dapm_mixer_update_power(widget->dapm,
1970 kcontrol, 0, update);
1971 }
1972
1973 return 1;
1974}
1975
1976static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
1977{
1978 u32 session_id = 0;
1979 u16 path_type;
1980 struct media_format_info voc_be_media_format;
1981
1982 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1983
1984 session_id = msm_pcm_routing_get_voc_sessionid(val);
1985
1986 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
1987 __func__, val, session_id);
1988
1989 mutex_lock(&routing_lock);
1990
1991 if (set)
1992 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1993 else
1994 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
1995
1996 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
1997 afe_get_port_type(msm_bedais[reg].port_id) ==
1998 MSM_AFE_PORT_TYPE_RX) {
1999 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2000 __func__, set, msm_bedais[reg].port_id);
2001 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2002 }
2003
2004 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2005 MSM_AFE_PORT_TYPE_RX)
2006 path_type = RX_PATH;
2007 else
2008 path_type = TX_PATH;
2009
2010 if (set) {
2011 if (msm_bedais[reg].active) {
2012 voc_set_route_flag(session_id, path_type, 1);
2013
2014 memset(&voc_be_media_format, 0,
2015 sizeof(struct media_format_info));
2016
2017 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2018 voc_be_media_format.num_channels =
2019 msm_bedais[reg].channel;
2020 voc_be_media_format.sample_rate =
2021 msm_bedais[reg].sample_rate;
2022 voc_be_media_format.bits_per_sample =
2023 msm_bedais[reg].format;
2024 /* Defaulting this to 1 for voice call usecases */
2025 voc_be_media_format.channel_mapping[0] = 1;
2026
2027 voc_set_device_config(session_id, path_type,
2028 &voc_be_media_format);
2029
2030 if (voc_get_route_flag(session_id, TX_PATH) &&
2031 voc_get_route_flag(session_id, RX_PATH))
2032 voc_enable_device(session_id);
2033 } else {
2034 pr_debug("%s BE is not active\n", __func__);
2035 }
2036 } else {
2037 voc_set_route_flag(session_id, path_type, 0);
2038 voc_disable_device(session_id);
2039 }
2040
2041 mutex_unlock(&routing_lock);
2042
2043}
2044
2045static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2046 struct snd_ctl_elem_value *ucontrol)
2047{
2048 struct soc_mixer_control *mc =
2049 (struct soc_mixer_control *)kcontrol->private_value;
2050
2051 mutex_lock(&routing_lock);
2052
Meng Wang007346c2019-10-16 12:52:13 +05302053 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302054 ucontrol->value.integer.value[0] = 1;
2055 else
2056 ucontrol->value.integer.value[0] = 0;
2057
2058 mutex_unlock(&routing_lock);
2059
Meng Wang007346c2019-10-16 12:52:13 +05302060 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
2061 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302062 ucontrol->value.integer.value[0]);
2063
2064 return 0;
2065}
2066
2067static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2068 struct snd_ctl_elem_value *ucontrol)
2069{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302070 struct snd_soc_dapm_widget *widget =
2071 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302072 struct soc_mixer_control *mc =
2073 (struct soc_mixer_control *)kcontrol->private_value;
2074 struct snd_soc_dapm_update *update = NULL;
2075
2076 if (ucontrol->value.integer.value[0]) {
Meng Wang007346c2019-10-16 12:52:13 +05302077 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302078 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2079 update);
2080 } else {
Meng Wang007346c2019-10-16 12:52:13 +05302081 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302082 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2083 update);
2084 }
2085
2086 return 1;
2087}
2088
2089static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2090 struct snd_ctl_elem_value *ucontrol)
2091{
2092 struct soc_mixer_control *mc =
2093 (struct soc_mixer_control *)kcontrol->private_value;
2094
2095 mutex_lock(&routing_lock);
2096
Meng Wang007346c2019-10-16 12:52:13 +05302097 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302098 ucontrol->value.integer.value[0] = 1;
2099 else
2100 ucontrol->value.integer.value[0] = 0;
2101
2102 mutex_unlock(&routing_lock);
2103
Meng Wang007346c2019-10-16 12:52:13 +05302104 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
2105 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302106 ucontrol->value.integer.value[0]);
2107
2108 return 0;
2109}
2110
2111static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2112 struct snd_ctl_elem_value *ucontrol)
2113{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302114 struct snd_soc_dapm_widget *widget =
2115 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302116 struct soc_mixer_control *mc =
2117 (struct soc_mixer_control *)kcontrol->private_value;
2118 struct snd_soc_dapm_update *update = NULL;
2119
2120 if (ucontrol->value.integer.value[0]) {
2121 mutex_lock(&routing_lock);
Meng Wang007346c2019-10-16 12:52:13 +05302122 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302123 mutex_unlock(&routing_lock);
2124
2125 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2126 update);
2127 } else {
2128 mutex_lock(&routing_lock);
Meng Wang007346c2019-10-16 12:52:13 +05302129 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302130 mutex_unlock(&routing_lock);
2131
2132 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2133 update);
2134 }
2135
Meng Wang007346c2019-10-16 12:52:13 +05302136 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
2137 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302138 ucontrol->value.integer.value[0]);
2139
2140 return 1;
2141}
2142
2143/*
2144 * Return the mapping between port ID and backend ID to enable the AFE callback
2145 * to determine the acdb_dev_id from the port id
2146 */
2147int msm_pcm_get_be_id_from_port_id(int port_id)
2148{
2149 int i;
2150 int be_id = -EINVAL;
2151
2152 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2153 if (msm_bedais[i].port_id == port_id) {
2154 be_id = i;
2155 break;
2156 }
2157 }
2158
2159 return be_id;
2160}
2161
2162/*
2163 * Return the registered dev_acdb_id given a port ID to enable identifying the
2164 * correct AFE calibration information by comparing the header information.
2165 */
2166static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2167{
2168 int acdb_id = -EINVAL;
2169 int i = 0;
2170 int session;
2171 int port_type = afe_get_port_type(port_id);
2172 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2173
2174 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2175 __func__, port_id, be_id, port_type);
2176
2177 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2178 session = SESSION_TYPE_TX;
2179 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2180 session = SESSION_TYPE_RX;
2181 } else {
2182 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2183 acdb_id = -EINVAL;
2184 goto exit;
2185 }
2186
2187 if (be_id < 0) {
2188 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2189 goto exit;
2190 }
2191
2192 mutex_lock(&routing_lock);
2193 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2194 MSM_FRONTEND_DAI_MAX);
2195 if (i < MSM_FRONTEND_DAI_MAX)
2196 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2197
2198 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2199 __func__, i, session, be_id, acdb_id);
2200 mutex_unlock(&routing_lock);
2201exit:
2202 return acdb_id;
2203}
2204
2205static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2206 struct snd_ctl_elem_value *ucontrol)
2207{
2208 ucontrol->value.integer.value[0] = fm_switch_enable;
2209 pr_debug("%s: FM Switch enable %ld\n", __func__,
2210 ucontrol->value.integer.value[0]);
2211 return 0;
2212}
2213
2214static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2215 struct snd_ctl_elem_value *ucontrol)
2216{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302217 struct snd_soc_dapm_widget *widget =
2218 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302219 struct snd_soc_dapm_update *update = NULL;
2220
2221 pr_debug("%s: FM Switch enable %ld\n", __func__,
2222 ucontrol->value.integer.value[0]);
2223 if (ucontrol->value.integer.value[0])
2224 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2225 update);
2226 else
2227 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2228 update);
2229 fm_switch_enable = ucontrol->value.integer.value[0];
2230 return 1;
2231}
2232
2233static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2234 struct snd_ctl_elem_value *ucontrol)
2235{
2236 ucontrol->value.integer.value[0] = hfp_switch_enable;
2237 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2238 ucontrol->value.integer.value[0]);
2239 return 0;
2240}
2241
2242static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2243 struct snd_ctl_elem_value *ucontrol)
2244{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302245 struct snd_soc_dapm_widget *widget =
2246 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302247 struct snd_soc_dapm_update *update = NULL;
2248
2249 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2250 ucontrol->value.integer.value[0]);
2251 if (ucontrol->value.integer.value[0])
2252 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2253 1, update);
2254 else
2255 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2256 0, update);
2257 hfp_switch_enable = ucontrol->value.integer.value[0];
2258 return 1;
2259}
2260
Aniket Kumar Lataf8664712018-02-22 14:46:09 -08002261static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2262 struct snd_ctl_elem_value *ucontrol)
2263{
2264 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2265 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2266 ucontrol->value.integer.value[0]);
2267 return 0;
2268}
2269
2270static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2271 struct snd_ctl_elem_value *ucontrol)
2272{
2273 struct snd_soc_dapm_widget *widget =
2274 snd_soc_dapm_kcontrol_widget(kcontrol);
2275 struct snd_soc_dapm_update *update = NULL;
2276
2277 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2278 ucontrol->value.integer.value[0]);
2279 a2dp_switch_enable = ucontrol->value.integer.value[0];
2280 if (a2dp_switch_enable)
2281 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2282 1, update);
2283 else
2284 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2285 0, update);
2286 return 1;
2287}
2288
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302289static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2290 struct snd_ctl_elem_value *ucontrol)
2291{
2292 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2293 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2294 ucontrol->value.integer.value[0]);
2295 return 0;
2296}
2297
2298static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2299 struct snd_ctl_elem_value *ucontrol)
2300{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302301 struct snd_soc_dapm_widget *widget =
2302 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302303 struct snd_soc_dapm_update *update = NULL;
2304
2305 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2306 ucontrol->value.integer.value[0]);
2307 if (ucontrol->value.integer.value[0])
2308 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2309 update);
2310 else
2311 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2312 update);
2313 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2314 return 1;
2315}
2316
2317static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2318 struct snd_ctl_elem_value *ucontrol)
2319{
2320 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2321 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2322 ucontrol->value.integer.value[0]);
2323 return 0;
2324}
2325
2326static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2327 struct snd_ctl_elem_value *ucontrol)
2328{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302329 struct snd_soc_dapm_widget *widget =
2330 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302331 struct snd_soc_dapm_update *update = NULL;
2332
2333 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2334 ucontrol->value.integer.value[0]);
2335 if (ucontrol->value.integer.value[0])
2336 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2337 update);
2338 else
2339 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2340 update);
2341 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2342 return 1;
2343}
2344
2345static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2346 struct snd_ctl_elem_value *ucontrol)
2347{
2348 ucontrol->value.integer.value[0] = usb_switch_enable;
2349 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2350 ucontrol->value.integer.value[0]);
2351 return 0;
2352}
2353
2354static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2355 struct snd_ctl_elem_value *ucontrol)
2356{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302357 struct snd_soc_dapm_widget *widget =
2358 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302359 struct snd_soc_dapm_update *update = NULL;
2360
2361 pr_debug("%s: USB Switch enable %ld\n", __func__,
2362 ucontrol->value.integer.value[0]);
2363 if (ucontrol->value.integer.value[0])
2364 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2365 1, update);
2366 else
2367 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2368 0, update);
2369 usb_switch_enable = ucontrol->value.integer.value[0];
2370 return 1;
2371}
2372
2373static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2374 struct snd_ctl_elem_value *ucontrol)
2375{
2376 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2377 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2378 ucontrol->value.integer.value[0]);
2379 return 0;
2380}
2381
2382static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2383 struct snd_ctl_elem_value *ucontrol)
2384{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302385 struct snd_soc_dapm_widget *widget =
2386 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302387 struct snd_soc_dapm_update *update = NULL;
2388
2389 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2390 ucontrol->value.integer.value[0]);
2391 if (ucontrol->value.integer.value[0])
2392 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2393 update);
2394 else
2395 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2396 update);
2397 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2398 return 1;
2399}
2400
2401static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2402 struct snd_ctl_elem_value *ucontrol)
2403{
2404 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2405 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2406 ucontrol->value.integer.value[0]);
2407 return 0;
2408}
2409
2410static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2411 struct snd_ctl_elem_value *ucontrol)
2412{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302413 struct snd_soc_dapm_widget *widget =
2414 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302415 struct snd_soc_dapm_update *update = NULL;
2416
2417 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2418 ucontrol->value.integer.value[0]);
2419 if (ucontrol->value.integer.value[0])
2420 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2421 update);
2422 else
2423 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2424 update);
2425 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2426 return 1;
2427}
2428
2429static int msm_routing_get_tert_mi2s_switch_mixer(
2430 struct snd_kcontrol *kcontrol,
2431 struct snd_ctl_elem_value *ucontrol)
2432{
2433 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2434 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2435 ucontrol->value.integer.value[0]);
2436 return 0;
2437}
2438
2439static int msm_routing_put_tert_mi2s_switch_mixer(
2440 struct snd_kcontrol *kcontrol,
2441 struct snd_ctl_elem_value *ucontrol)
2442{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302443 struct snd_soc_dapm_widget *widget =
2444 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302445 struct snd_soc_dapm_update *update = NULL;
2446
2447 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2448 ucontrol->value.integer.value[0]);
2449 if (ucontrol->value.integer.value[0])
2450 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2451 update);
2452 else
2453 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2454 update);
2455 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2456 return 1;
2457}
2458
2459static int msm_routing_get_quat_mi2s_switch_mixer(
2460 struct snd_kcontrol *kcontrol,
2461 struct snd_ctl_elem_value *ucontrol)
2462{
2463 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2464 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2465 ucontrol->value.integer.value[0]);
2466 return 0;
2467}
2468
2469static int msm_routing_put_quat_mi2s_switch_mixer(
2470 struct snd_kcontrol *kcontrol,
2471 struct snd_ctl_elem_value *ucontrol)
2472{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302473 struct snd_soc_dapm_widget *widget =
2474 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302475 struct snd_soc_dapm_update *update = NULL;
2476
2477 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2478 ucontrol->value.integer.value[0]);
2479 if (ucontrol->value.integer.value[0])
2480 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2481 update);
2482 else
2483 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2484 update);
2485 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2486 return 1;
2487}
2488
Rohit Kumara5077932017-09-10 22:05:05 +05302489static int msm_routing_get_quin_mi2s_switch_mixer(
2490 struct snd_kcontrol *kcontrol,
2491 struct snd_ctl_elem_value *ucontrol)
2492{
2493 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2494 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2495 ucontrol->value.integer.value[0]);
2496 return 0;
2497}
2498
2499static int msm_routing_put_quin_mi2s_switch_mixer(
2500 struct snd_kcontrol *kcontrol,
2501 struct snd_ctl_elem_value *ucontrol)
2502{
2503 struct snd_soc_dapm_widget *widget =
2504 snd_soc_dapm_kcontrol_widget(kcontrol);
2505 struct snd_soc_dapm_update *update = NULL;
2506
2507 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2508 ucontrol->value.integer.value[0]);
2509 if (ucontrol->value.integer.value[0])
2510 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2511 update);
2512 else
2513 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2514 update);
2515 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2516 return 1;
2517}
2518
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302519static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2520 struct snd_ctl_elem_value *ucontrol)
2521{
2522 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2523 pr_debug("%s: FM Switch enable %ld\n", __func__,
2524 ucontrol->value.integer.value[0]);
2525 return 0;
2526}
2527
2528static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2529 struct snd_ctl_elem_value *ucontrol)
2530{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302531 struct snd_soc_dapm_widget *widget =
2532 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302533 struct snd_soc_dapm_update *update = NULL;
2534
2535 pr_debug("%s: FM Switch enable %ld\n", __func__,
2536 ucontrol->value.integer.value[0]);
2537 if (ucontrol->value.integer.value[0])
2538 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2539 update);
2540 else
2541 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2542 update);
2543 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2544 return 1;
2545}
2546
2547static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2548 struct snd_ctl_elem_value *ucontrol)
2549{
2550 ucontrol->value.integer.value[0] = lsm_port_index;
2551 return 0;
2552}
2553
2554static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2555 struct snd_ctl_elem_value *ucontrol)
2556{
2557 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2558 int mux = ucontrol->value.enumerated.item[0];
2559 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2560
2561 if (mux >= e->items) {
2562 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2563 return -EINVAL;
2564 }
2565
2566 pr_debug("%s: LSM enable %ld\n", __func__,
2567 ucontrol->value.integer.value[0]);
2568 switch (ucontrol->value.integer.value[0]) {
2569 case 1:
2570 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2571 break;
2572 case 2:
2573 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2574 break;
2575 case 3:
2576 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2577 break;
2578 case 4:
2579 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2580 break;
2581 case 5:
2582 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2583 break;
2584 case 6:
2585 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2586 break;
2587 case 7:
2588 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2589 break;
2590 case 8:
2591 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2592 break;
2593 case 9:
2594 lsm_port = ADM_LSM_PORT_ID;
2595 break;
2596 case 10:
Revathi Uddarajue990e322018-07-04 15:30:19 +05302597 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
Ashish Jain01b10322018-05-12 15:37:44 +05302598 break;
2599 case 11:
Revathi Uddarajue990e322018-07-04 15:30:19 +05302600 lsm_port = AFE_PORT_ID_PRIMARY_TDM_TX_2;
Ashish Jain01b10322018-05-12 15:37:44 +05302601 break;
2602 case 12:
Revathi Uddarajue990e322018-07-04 15:30:19 +05302603 lsm_port = AFE_PORT_ID_PRIMARY_TDM_TX_3;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302604 break;
2605 default:
2606 pr_err("Default lsm port");
2607 break;
2608 }
2609 set_lsm_port(lsm_port);
2610 lsm_port_index = ucontrol->value.integer.value[0];
2611
2612 return 0;
2613}
2614
2615static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2616 struct snd_ctl_elem_value *ucontrol)
2617{
2618 int i;
2619 u16 port_id;
2620 enum afe_mad_type mad_type;
2621
2622 pr_debug("%s: enter\n", __func__);
2623 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2624 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2625 strlen(lsm_port_text[i])))
2626 break;
2627
2628 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2629 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2630 return -EINVAL;
2631 }
2632
2633 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2634
2635 /*Check for Tertiary/Quaternary/INT3 TX port*/
2636 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2637 strlen(lsm_port_text[7])))
2638 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2639
2640 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2641 strlen(lsm_port_text[8])))
2642 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2643
2644 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2645 strlen(lsm_port_text[10])))
2646 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2647
2648 mad_type = afe_port_get_mad_type(port_id);
2649 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2650 mad_type);
2651 switch (mad_type) {
2652 case MAD_HW_NONE:
2653 ucontrol->value.integer.value[0] = MADNONE;
2654 break;
2655 case MAD_HW_AUDIO:
2656 ucontrol->value.integer.value[0] = MADAUDIO;
2657 break;
2658 case MAD_HW_BEACON:
2659 ucontrol->value.integer.value[0] = MADBEACON;
2660 break;
2661 case MAD_HW_ULTRASOUND:
2662 ucontrol->value.integer.value[0] = MADULTRASOUND;
2663 break;
2664 case MAD_SW_AUDIO:
2665 ucontrol->value.integer.value[0] = MADSWAUDIO;
2666 break;
2667 default:
2668 WARN(1, "Unknown\n");
2669 return -EINVAL;
2670 }
2671 return 0;
2672}
2673
2674static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2675 struct snd_ctl_elem_value *ucontrol)
2676{
2677 int i;
2678 u16 port_id;
2679 enum afe_mad_type mad_type;
2680
2681 pr_debug("%s: enter\n", __func__);
2682 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2683 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2684 strlen(lsm_port_text[i])))
2685 break;
2686
2687 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2688 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2689 return -EINVAL;
2690 }
2691
2692 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2693 switch (ucontrol->value.integer.value[0]) {
2694 case MADNONE:
2695 mad_type = MAD_HW_NONE;
2696 break;
2697 case MADAUDIO:
2698 mad_type = MAD_HW_AUDIO;
2699 break;
2700 case MADBEACON:
2701 mad_type = MAD_HW_BEACON;
2702 break;
2703 case MADULTRASOUND:
2704 mad_type = MAD_HW_ULTRASOUND;
2705 break;
2706 case MADSWAUDIO:
2707 mad_type = MAD_SW_AUDIO;
2708 break;
2709 default:
2710 WARN(1, "Unknown\n");
2711 return -EINVAL;
2712 }
2713
2714 /*Check for Tertiary/Quaternary/INT3 TX port*/
2715 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2716 strlen(lsm_port_text[7])))
2717 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2718
2719 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2720 strlen(lsm_port_text[8])))
2721 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2722
2723 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2724 strlen(lsm_port_text[10])))
2725 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2726
2727 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2728 mad_type);
2729 return afe_port_set_mad_type(port_id, mad_type);
2730}
2731
2732static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2733
2734static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2735 adm_override_chs_text);
2736
2737static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2738{
2739 int backend_id;
2740
2741 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2742 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2743 } else {
2744 pr_err("%s: unsupported backend id: %s",
2745 __func__, kcontrol->id.name);
2746 return -EINVAL;
2747 }
2748
2749 return backend_id;
2750}
2751static int msm_routing_adm_channel_config_get(
2752 struct snd_kcontrol *kcontrol,
2753 struct snd_ctl_elem_value *ucontrol)
2754{
2755 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2756
2757 if (backend_id >= 0) {
2758 mutex_lock(&routing_lock);
2759 ucontrol->value.integer.value[0] =
2760 msm_bedais[backend_id].adm_override_ch;
2761 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2762 ucontrol->value.integer.value[0], backend_id);
2763 mutex_unlock(&routing_lock);
2764 }
2765
2766 return 0;
2767}
2768
2769static int msm_routing_adm_channel_config_put(
2770 struct snd_kcontrol *kcontrol,
2771 struct snd_ctl_elem_value *ucontrol)
2772{
2773 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2774
2775 if (backend_id >= 0) {
2776 mutex_lock(&routing_lock);
2777 msm_bedais[backend_id].adm_override_ch =
2778 ucontrol->value.integer.value[0];
2779 pr_debug("%s:updating BE :%d adm channels: %d\n",
2780 __func__, backend_id,
2781 msm_bedais[backend_id].adm_override_ch);
2782 mutex_unlock(&routing_lock);
2783 }
2784
2785 return 0;
2786}
2787
2788static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2789 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2790 msm_routing_adm_channel_config_get,
2791 msm_routing_adm_channel_config_put),
2792};
2793
2794static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2795 struct snd_ctl_elem_value *ucontrol)
2796{
2797
2798 mutex_lock(&routing_lock);
2799 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2800 mutex_unlock(&routing_lock);
2801 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2802 ucontrol->value.integer.value[0]);
2803 return 0;
2804};
2805
2806static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2807 struct snd_ctl_elem_value *ucontrol)
2808{
2809 struct aanc_data aanc_info;
2810
2811 mutex_lock(&routing_lock);
2812 memset(&aanc_info, 0x00, sizeof(aanc_info));
2813 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2814 ucontrol->value.integer.value[0]);
2815 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2816 if (ucontrol->value.integer.value[0] == 0) {
2817 aanc_info.aanc_active = false;
2818 aanc_info.aanc_tx_port = 0;
2819 aanc_info.aanc_rx_port = 0;
2820 } else {
2821 aanc_info.aanc_active = true;
2822 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2823 aanc_info.aanc_tx_port =
2824 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2825 }
2826 afe_set_aanc_info(&aanc_info);
2827 mutex_unlock(&routing_lock);
2828 return 0;
2829};
2830static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2831 struct snd_ctl_elem_value *ucontrol)
2832{
2833 int idx = 0, shift = 0;
2834 struct soc_mixer_control *mc =
2835 (struct soc_mixer_control *)kcontrol->private_value;
2836
Meng Wang007346c2019-10-16 12:52:13 +05302837 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2838 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302839
2840 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2841 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2842 return -EINVAL;
2843 }
2844
2845 if (test_bit(shift,
Meng Wang007346c2019-10-16 12:52:13 +05302846 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302847 ucontrol->value.integer.value[0] = 1;
2848 else
2849 ucontrol->value.integer.value[0] = 0;
2850
Meng Wang007346c2019-10-16 12:52:13 +05302851 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
2852 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302853 ucontrol->value.integer.value[0]);
2854
2855 return 0;
2856}
2857
2858static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2859 struct snd_ctl_elem_value *ucontrol)
2860{
2861 int idx = 0, shift = 0;
2862 struct soc_mixer_control *mc =
2863 (struct soc_mixer_control *)kcontrol->private_value;
2864
Meng Wang007346c2019-10-16 12:52:13 +05302865 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2866 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302867
2868 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2869 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2870 return -EINVAL;
2871 }
2872
Meng Wang007346c2019-10-16 12:52:13 +05302873 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2874 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302875 ucontrol->value.integer.value[0], idx, shift);
2876
2877 if (ucontrol->value.integer.value[0]) {
Meng Wang007346c2019-10-16 12:52:13 +05302878 afe_loopback(1, msm_bedais[mc->shift].port_id,
2879 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302880 set_bit(shift,
Meng Wang007346c2019-10-16 12:52:13 +05302881 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302882 } else {
Meng Wang007346c2019-10-16 12:52:13 +05302883 afe_loopback(0, msm_bedais[mc->shift].port_id,
2884 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302885 clear_bit(shift,
Meng Wang007346c2019-10-16 12:52:13 +05302886 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302887 }
2888
2889 return 1;
2890}
2891
2892static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2893 struct snd_ctl_elem_value *ucontrol)
2894{
2895 u16 fe_id = 0;
2896
2897 fe_id = ((struct soc_mixer_control *)
2898 kcontrol->private_value)->shift;
2899 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2900 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2901 return -EINVAL;
2902 }
2903
2904 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2905
2906 return 0;
2907}
2908
2909static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2910 struct snd_ctl_elem_value *ucontrol)
2911{
2912 u16 fe_id = 0;
2913
2914 fe_id = ((struct soc_mixer_control *)
2915 kcontrol->private_value)->shift;
2916 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2917 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2918 return -EINVAL;
2919 }
2920
2921 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
2922
2923 return 1;
2924}
2925
2926static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
2927 struct snd_ctl_elem_value *ucontrol)
2928{
2929 u16 fe_id = 0;
2930
2931 fe_id = ((struct soc_multi_mixer_control *)
2932 kcontrol->private_value)->shift;
2933 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2934 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2935 return -EINVAL;
2936 }
2937
2938 ucontrol->value.integer.value[0] =
2939 channel_mixer[fe_id].output_channel;
2940 return 0;
2941}
2942
2943static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
2944 struct snd_ctl_elem_value *ucontrol)
2945{
2946 u16 fe_id = 0;
2947
2948 fe_id = ((struct soc_multi_mixer_control *)
2949 kcontrol->private_value)->shift;
2950 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2951 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2952 return -EINVAL;
2953 }
2954
2955 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
2956 fe_id,
2957 (unsigned int)(ucontrol->value.integer.value[0]));
2958 channel_mixer[fe_id].output_channel =
2959 (unsigned int)(ucontrol->value.integer.value[0]);
2960
2961 return 1;
2962}
2963
2964static const char *const ch_mixer[] = {"Disable", "Enable"};
2965
2966/* If new backend is added, need update this array */
2967static const char *const be_name[] = {
2968"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
2969"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
2970"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
2971"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
2972"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
2973"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
2974"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
2975"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
2976"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
2977"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
2978"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
2979"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
2980"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "SPDIF_RX",
2981"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
2982"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
2983"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
2984"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
2985"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
2986"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
2987"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
2988"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
2989"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
2990"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
2991"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
2992"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
2993"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
2994"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
2995"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
2996"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
2997"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05302998"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
2999"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3000"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3001"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303002"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3003"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303004"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303005"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3006"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3007"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
3008"INT6_MI2S_RX", "INT6_MI2S_TX"
3009};
3010
3011static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3012 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3013static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3014 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3015static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3016 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3017static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3018 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3019
3020static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3021 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3022static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3023 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3024static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3025 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3026static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3027 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3028static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3029 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3030static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3031 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3032static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3033 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3034static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3035 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3036
3037static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3038 unsigned int channels,
3039 unsigned int items, const char *const names[])
3040{
3041 if (uinfo->value.enumerated.item >= items)
3042 uinfo->value.enumerated.item = items - 1;
3043
3044 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3045 sizeof(uinfo->value.enumerated.name),
3046 "ALSA: too long item name '%s'\n",
3047 names[uinfo->value.enumerated.item]);
3048 strlcpy(uinfo->value.enumerated.name,
3049 names[uinfo->value.enumerated.item],
3050 sizeof(uinfo->value.enumerated.name));
3051 return 0;
3052}
3053
3054static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3055 struct snd_ctl_elem_info *uinfo)
3056{
3057 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3058
3059 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3060 uinfo->count = 1;
3061
3062 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3063 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3064
3065 return 0;
3066}
3067static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3068 struct snd_ctl_elem_value *ucontrol)
3069{
3070 u16 fe_id = 0;
3071
3072 fe_id = ((struct soc_enum *)
3073 kcontrol->private_value)->shift_l;
3074 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3075 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3076 return -EINVAL;
3077 }
3078
3079 pr_debug("%s: FE %d %s\n", __func__,
3080 fe_id,
3081 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3082 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3083 return 0;
3084}
3085
3086static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3087 struct snd_ctl_elem_value *ucontrol)
3088{
3089 u16 fe_id = 0;
3090
3091 fe_id = ((struct soc_enum *)
3092 kcontrol->private_value)->shift_l;
3093 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3094 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3095 return -EINVAL;
3096 }
3097
3098 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3099 pr_debug("%s: %s FE %d\n", __func__,
3100 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3101 fe_id);
3102 return 0;
3103}
3104
3105static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3106 struct snd_ctl_elem_info *uinfo)
3107{
3108 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3109
3110 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3111 uinfo->count = 1;
3112
3113 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3114 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3115
3116 return 0;
3117}
3118
3119static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3120 struct snd_ctl_elem_value *ucontrol)
3121{
3122 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3123 u16 fe_id = 0, in_ch = 0;
3124
3125 fe_id = e->shift_l;
3126 in_ch = e->shift_r;
3127 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3128 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3129 return -EINVAL;
3130 }
3131 if (in_ch >= ADM_MAX_CHANNELS) {
3132 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3133 return -EINVAL;
3134 }
3135
3136 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3137 return 1;
3138}
3139
3140static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3141 struct snd_ctl_elem_value *ucontrol)
3142{
3143 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3144 u16 fe_id = 0, in_ch = 0;
3145
3146 fe_id = e->shift_l;
3147 in_ch = e->shift_r;
3148 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3149 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3150 return -EINVAL;
3151 }
3152 if (in_ch >= ADM_MAX_CHANNELS) {
3153 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3154 return -EINVAL;
3155 }
3156
3157 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3158 return 1;
3159}
3160
3161
3162static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3163 struct snd_ctl_elem_info *uinfo)
3164{
3165 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3166 uinfo->count = ADM_MAX_CHANNELS;
3167 uinfo->value.integer.min = 0;
3168 uinfo->value.integer.max = WEIGHT_0_DB;
3169
3170 return 0;
3171}
3172
3173static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3174 struct snd_ctl_elem_value *ucontrol)
3175{
3176 u16 fe_id = 0, out_ch = 0;
3177 int i, weight;
3178
3179 fe_id = ((struct soc_multi_mixer_control *)
3180 kcontrol->private_value)->shift;
3181 out_ch = ((struct soc_multi_mixer_control *)
3182 kcontrol->private_value)->rshift;
3183 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3184 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3185 return -EINVAL;
3186 }
3187 if (out_ch >= ADM_MAX_CHANNELS) {
3188 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3189 return -EINVAL;
3190 }
3191
3192 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3193 __func__, fe_id,
3194 ucontrol->value.integer.value[0],
3195 ucontrol->value.integer.value[1],
3196 ucontrol->value.integer.value[2],
3197 ucontrol->value.integer.value[3],
3198 ucontrol->value.integer.value[4],
3199 ucontrol->value.integer.value[5],
3200 ucontrol->value.integer.value[6],
3201 ucontrol->value.integer.value[7]);
3202
3203 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3204 weight = ucontrol->value.integer.value[i];
3205 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3206 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3207 __func__, fe_id, out_ch, i,
3208 channel_mixer[fe_id].channel_weight[out_ch][i]);
3209 }
3210
3211 return 0;
3212}
3213
3214static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3215 struct snd_ctl_elem_value *ucontrol)
3216{
3217 u16 fe_id = 0, out_ch = 0;
3218 int i;
3219
3220 fe_id = ((struct soc_multi_mixer_control *)
3221 kcontrol->private_value)->shift;
3222 out_ch = ((struct soc_multi_mixer_control *)
3223 kcontrol->private_value)->rshift;
3224 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3225 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3226 return -EINVAL;
3227 }
3228 if (out_ch >= ADM_MAX_CHANNELS) {
3229 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3230 return -EINVAL;
3231 }
3232
3233 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3234 ucontrol->value.integer.value[i] =
3235 channel_mixer[fe_id].channel_weight[out_ch][i];
3236
3237 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3238 __func__, fe_id,
3239 ucontrol->value.integer.value[0],
3240 ucontrol->value.integer.value[1],
3241 ucontrol->value.integer.value[2],
3242 ucontrol->value.integer.value[3],
3243 ucontrol->value.integer.value[4],
3244 ucontrol->value.integer.value[5],
3245 ucontrol->value.integer.value[6],
3246 ucontrol->value.integer.value[7]);
3247
3248 return 0;
3249}
3250
3251static const struct snd_kcontrol_new channel_mixer_controls[] = {
3252 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3253 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3254 msm_pcm_get_channel_rule_index,
3255 msm_pcm_put_channel_rule_index),
3256 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3257 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3258 msm_pcm_get_channel_rule_index,
3259 msm_pcm_put_channel_rule_index),
3260 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3261 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3262 msm_pcm_get_channel_rule_index,
3263 msm_pcm_put_channel_rule_index),
3264 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3265 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3266 msm_pcm_get_channel_rule_index,
3267 msm_pcm_put_channel_rule_index),
3268 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3269 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3270 msm_pcm_get_channel_rule_index,
3271 msm_pcm_put_channel_rule_index),
3272 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3273 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3274 msm_pcm_get_channel_rule_index,
3275 msm_pcm_put_channel_rule_index),
3276
3277 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3278 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3279 msm_pcm_get_out_chs,
3280 msm_pcm_put_out_chs),
3281 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3282 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3283 msm_pcm_get_out_chs,
3284 msm_pcm_put_out_chs),
3285 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3286 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3287 msm_pcm_get_out_chs,
3288 msm_pcm_put_out_chs),
3289 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3290 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3291 msm_pcm_get_out_chs,
3292 msm_pcm_put_out_chs),
3293 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3294 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3295 msm_pcm_get_out_chs,
3296 msm_pcm_put_out_chs),
3297 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3298 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3299 msm_pcm_get_out_chs,
3300 msm_pcm_put_out_chs),
3301 {
3302 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3303 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3304 .name = "MultiMedia1 Channel Mixer",
3305 .info = msm_pcm_channel_mixer_info,
3306 .get = msm_pcm_channel_mixer_get,
3307 .put = msm_pcm_channel_mixer_put,
3308 .private_value = (unsigned long)&(mm1_channel_mux)
3309 },
3310 {
3311 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3312 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3313 .name = "MultiMedia2 Channel Mixer",
3314 .info = msm_pcm_channel_mixer_info,
3315 .get = msm_pcm_channel_mixer_get,
3316 .put = msm_pcm_channel_mixer_put,
3317 .private_value = (unsigned long)&(mm2_channel_mux)
3318 },
3319 {
3320 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3321 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3322 .name = "MultiMedia3 Channel Mixer",
3323 .info = msm_pcm_channel_mixer_info,
3324 .get = msm_pcm_channel_mixer_get,
3325 .put = msm_pcm_channel_mixer_put,
3326 .private_value = (unsigned long)&(mm3_channel_mux)
3327 },
3328 {
3329 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3330 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3331 .name = "MultiMedia4 Channel Mixer",
3332 .info = msm_pcm_channel_mixer_info,
3333 .get = msm_pcm_channel_mixer_get,
3334 .put = msm_pcm_channel_mixer_put,
3335 .private_value = (unsigned long)&(mm4_channel_mux)
3336 },
3337 {
3338 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3339 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3340 .name = "MultiMedia1 Output Channel1",
3341 .info = msm_pcm_channel_weight_info,
3342 .get = msm_pcm_channel_weight_get,
3343 .put = msm_pcm_channel_weight_put,
3344 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3345 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3346 },
3347 {
3348 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3349 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3350 .name = "MultiMedia1 Output Channel2",
3351 .info = msm_pcm_channel_weight_info,
3352 .get = msm_pcm_channel_weight_get,
3353 .put = msm_pcm_channel_weight_put,
3354 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3355 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3356 },
3357 {
3358 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3359 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3360 .name = "MultiMedia1 Output Channel3",
3361 .info = msm_pcm_channel_weight_info,
3362 .get = msm_pcm_channel_weight_get,
3363 .put = msm_pcm_channel_weight_put,
3364 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3365 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3366 },
3367 {
3368 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3369 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3370 .name = "MultiMedia1 Output Channel4",
3371 .info = msm_pcm_channel_weight_info,
3372 .get = msm_pcm_channel_weight_get,
3373 .put = msm_pcm_channel_weight_put,
3374 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3375 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3376 },
3377 {
3378 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3379 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3380 .name = "MultiMedia1 Output Channel5",
3381 .info = msm_pcm_channel_weight_info,
3382 .get = msm_pcm_channel_weight_get,
3383 .put = msm_pcm_channel_weight_put,
3384 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3385 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3386 },
3387 {
3388 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3389 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3390 .name = "MultiMedia1 Output Channel6",
3391 .info = msm_pcm_channel_weight_info,
3392 .get = msm_pcm_channel_weight_get,
3393 .put = msm_pcm_channel_weight_put,
3394 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3395 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3396 },
3397 {
3398 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3399 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3400 .name = "MultiMedia1 Output Channel7",
3401 .info = msm_pcm_channel_weight_info,
3402 .get = msm_pcm_channel_weight_get,
3403 .put = msm_pcm_channel_weight_put,
3404 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3405 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3406 },
3407 {
3408 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3409 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3410 .name = "MultiMedia1 Output Channel8",
3411 .info = msm_pcm_channel_weight_info,
3412 .get = msm_pcm_channel_weight_get,
3413 .put = msm_pcm_channel_weight_put,
3414 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3415 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3416 },
3417 {
3418 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3419 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3420 .name = "MultiMedia2 Output Channel1",
3421 .info = msm_pcm_channel_weight_info,
3422 .get = msm_pcm_channel_weight_get,
3423 .put = msm_pcm_channel_weight_put,
3424 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3425 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3426 },
3427 {
3428 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3429 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3430 .name = "MultiMedia2 Output Channel2",
3431 .info = msm_pcm_channel_weight_info,
3432 .get = msm_pcm_channel_weight_get,
3433 .put = msm_pcm_channel_weight_put,
3434 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3435 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3436 },
3437 {
3438 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3439 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3440 .name = "MultiMedia2 Output Channel3",
3441 .info = msm_pcm_channel_weight_info,
3442 .get = msm_pcm_channel_weight_get,
3443 .put = msm_pcm_channel_weight_put,
3444 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3445 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3446 },
3447 {
3448 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3449 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3450 .name = "MultiMedia3 Output Channel1",
3451 .info = msm_pcm_channel_weight_info,
3452 .get = msm_pcm_channel_weight_get,
3453 .put = msm_pcm_channel_weight_put,
3454 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3455 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3456 },
3457 {
3458 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3459 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3460 .name = "MultiMedia3 Output Channel2",
3461 .info = msm_pcm_channel_weight_info,
3462 .get = msm_pcm_channel_weight_get,
3463 .put = msm_pcm_channel_weight_put,
3464 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3465 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3466 },
3467 {
3468 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3469 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3470 .name = "MultiMedia1 Channel1",
3471 .info = msm_pcm_channel_input_be_info,
3472 .get = msm_pcm_channel_input_be_get,
3473 .put = msm_pcm_channel_input_be_put,
3474 .private_value = (unsigned long)&(mm1_ch1_enum)
3475 },
3476 {
3477 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3478 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3479 .name = "MultiMedia1 Channel2",
3480 .info = msm_pcm_channel_input_be_info,
3481 .get = msm_pcm_channel_input_be_get,
3482 .put = msm_pcm_channel_input_be_put,
3483 .private_value = (unsigned long)&(mm1_ch2_enum)
3484 },
3485 {
3486 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3487 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3488 .name = "MultiMedia1 Channel3",
3489 .info = msm_pcm_channel_input_be_info,
3490 .get = msm_pcm_channel_input_be_get,
3491 .put = msm_pcm_channel_input_be_put,
3492 .private_value = (unsigned long)&(mm1_ch3_enum)
3493 },
3494 {
3495 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3496 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3497 .name = "MultiMedia1 Channel4",
3498 .info = msm_pcm_channel_input_be_info,
3499 .get = msm_pcm_channel_input_be_get,
3500 .put = msm_pcm_channel_input_be_put,
3501 .private_value = (unsigned long)&(mm1_ch4_enum)
3502 },
3503 {
3504 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3505 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3506 .name = "MultiMedia1 Channel5",
3507 .info = msm_pcm_channel_input_be_info,
3508 .get = msm_pcm_channel_input_be_get,
3509 .put = msm_pcm_channel_input_be_put,
3510 .private_value = (unsigned long)&(mm1_ch5_enum)
3511 },
3512 {
3513 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3514 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3515 .name = "MultiMedia1 Channel6",
3516 .info = msm_pcm_channel_input_be_info,
3517 .get = msm_pcm_channel_input_be_get,
3518 .put = msm_pcm_channel_input_be_put,
3519 .private_value = (unsigned long)&(mm1_ch6_enum)
3520 },
3521 {
3522 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3523 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3524 .name = "MultiMedia1 Channel7",
3525 .info = msm_pcm_channel_input_be_info,
3526 .get = msm_pcm_channel_input_be_get,
3527 .put = msm_pcm_channel_input_be_put,
3528 .private_value = (unsigned long)&(mm1_ch7_enum)
3529 },
3530 {
3531 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3532 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3533 .name = "MultiMedia1 Channel8",
3534 .info = msm_pcm_channel_input_be_info,
3535 .get = msm_pcm_channel_input_be_get,
3536 .put = msm_pcm_channel_input_be_put,
3537 .private_value = (unsigned long)&(mm1_ch8_enum)
3538 },
3539};
3540static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3541 struct snd_ctl_elem_value *ucontrol)
3542{
3543 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3544 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3545 ucontrol->value.integer.value[0]);
3546 return 0;
3547}
3548
3549static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3550 struct snd_ctl_elem_value *ucontrol)
3551{
3552 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3553 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3554 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3555 return 0;
3556}
3557
3558static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3559 "Four", "Five", "Six", "Seven", "Eight"};
3560
3561static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3562 struct snd_ctl_elem_value *ucontrol)
3563{
3564 switch (msm_ec_ref_bit_format) {
3565 case SNDRV_PCM_FORMAT_S24_LE:
3566 ucontrol->value.integer.value[0] = 2;
3567 break;
3568 case SNDRV_PCM_FORMAT_S16_LE:
3569 ucontrol->value.integer.value[0] = 1;
3570 break;
3571 default:
3572 ucontrol->value.integer.value[0] = 0;
3573 break;
3574 }
3575 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3576 __func__, ucontrol->value.integer.value[0]);
3577 return 0;
3578}
3579
3580static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3581 struct snd_ctl_elem_value *ucontrol)
3582{
3583 u16 bit_width = 0;
3584
3585 switch (ucontrol->value.integer.value[0]) {
3586 case 2:
3587 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3588 break;
3589 case 1:
3590 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3591 break;
3592 default:
3593 msm_ec_ref_bit_format = 0;
3594 break;
3595 }
3596
3597 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3598 bit_width = 16;
3599 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3600 bit_width = 24;
3601
3602 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3603 __func__, msm_ec_ref_bit_format);
3604 adm_ec_ref_rx_bit_width(bit_width);
3605 return 0;
3606}
3607
3608static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3609
3610static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3611 struct snd_ctl_elem_value *ucontrol)
3612{
3613 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3614 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3615 __func__, ucontrol->value.integer.value[0]);
3616 return 0;
3617}
3618
3619static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3620 struct snd_ctl_elem_value *ucontrol)
3621{
3622 switch (ucontrol->value.integer.value[0]) {
3623 case 0:
3624 msm_ec_ref_sampling_rate = 0;
3625 break;
3626 case 1:
3627 msm_ec_ref_sampling_rate = 8000;
3628 break;
3629 case 2:
3630 msm_ec_ref_sampling_rate = 16000;
3631 break;
3632 case 3:
3633 msm_ec_ref_sampling_rate = 32000;
3634 break;
3635 case 4:
3636 msm_ec_ref_sampling_rate = 44100;
3637 break;
3638 case 5:
3639 msm_ec_ref_sampling_rate = 48000;
3640 break;
3641 case 6:
3642 msm_ec_ref_sampling_rate = 96000;
3643 break;
3644 case 7:
3645 msm_ec_ref_sampling_rate = 192000;
3646 break;
3647 case 8:
3648 msm_ec_ref_sampling_rate = 384000;
3649 break;
3650 default:
3651 msm_ec_ref_sampling_rate = 48000;
3652 break;
3653 }
3654 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3655 __func__, msm_ec_ref_sampling_rate);
3656 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3657 return 0;
3658}
3659
3660static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3661 "32000", "44100", "48000", "96000", "192000", "384000"};
3662
3663static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3664 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3665 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3666 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3667};
3668
3669static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3670 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3671 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3672 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3673 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3674 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3675 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3676};
3677
3678static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3679 struct snd_ctl_elem_value *ucontrol)
3680{
3681 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3682 mutex_lock(&routing_lock);
3683 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3684 mutex_unlock(&routing_lock);
3685 return 0;
3686}
3687
3688static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3689 struct snd_ctl_elem_value *ucontrol)
3690{
3691 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303692 struct snd_soc_dapm_widget *widget =
3693 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303694 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3695 struct snd_soc_dapm_update *update = NULL;
3696
3697
3698 mutex_lock(&routing_lock);
3699 switch (ucontrol->value.integer.value[0]) {
3700 case 0:
3701 msm_route_ec_ref_rx = 0;
3702 ec_ref_port_id = AFE_PORT_INVALID;
3703 break;
3704 case 1:
3705 msm_route_ec_ref_rx = 1;
3706 ec_ref_port_id = SLIMBUS_0_RX;
3707 break;
3708 case 2:
3709 msm_route_ec_ref_rx = 2;
3710 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3711 break;
3712 case 3:
3713 msm_route_ec_ref_rx = 3;
3714 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3715 break;
3716 case 4:
3717 msm_route_ec_ref_rx = 4;
3718 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3719 break;
3720 case 5:
3721 msm_route_ec_ref_rx = 5;
3722 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3723 break;
3724 case 6:
3725 msm_route_ec_ref_rx = 6;
3726 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3727 break;
3728 case 7:
3729 msm_route_ec_ref_rx = 7;
3730 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3731 break;
3732 case 9:
3733 msm_route_ec_ref_rx = 9;
3734 ec_ref_port_id = SLIMBUS_5_RX;
3735 break;
3736 case 10:
3737 msm_route_ec_ref_rx = 10;
3738 ec_ref_port_id = SLIMBUS_1_TX;
3739 break;
3740 case 11:
3741 msm_route_ec_ref_rx = 11;
3742 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3743 break;
3744 case 12:
3745 msm_route_ec_ref_rx = 12;
3746 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3747 break;
3748 case 13:
3749 msm_route_ec_ref_rx = 13;
3750 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3751 break;
3752 case 14:
3753 msm_route_ec_ref_rx = 14;
3754 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3755 break;
3756 case 15:
3757 msm_route_ec_ref_rx = 15;
3758 ec_ref_port_id = SLIMBUS_6_RX;
3759 break;
3760 case 16:
3761 msm_route_ec_ref_rx = 16;
3762 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3763 break;
3764 case 17:
3765 msm_route_ec_ref_rx = 17;
3766 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3767 break;
3768 case 18:
3769 msm_route_ec_ref_rx = 18;
3770 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3771 break;
3772 case 19:
3773 msm_route_ec_ref_rx = 19;
3774 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3775 break;
3776 case 20:
3777 msm_route_ec_ref_rx = 20;
3778 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3779 break;
3780 case 21:
3781 msm_route_ec_ref_rx = 21;
3782 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3783 break;
3784 case 22:
3785 msm_route_ec_ref_rx = 22;
3786 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3787 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003788 case 23:
3789 msm_route_ec_ref_rx = 23;
3790 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3791 break;
Bala Kishore Pati1a044712018-10-03 12:12:36 +05303792 case 24:
3793 msm_route_ec_ref_rx = 24;
3794 ec_ref_port_id = AFE_PORT_ID_PRIMARY_TDM_RX_1;
3795 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303796 default:
3797 msm_route_ec_ref_rx = 0; /* NONE */
3798 pr_err("%s EC ref rx %ld not valid\n",
3799 __func__, ucontrol->value.integer.value[0]);
3800 ec_ref_port_id = AFE_PORT_INVALID;
3801 break;
3802 }
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05303803 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303804 adm_ec_ref_rx_id(ec_ref_port_id);
3805 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3806 __func__, msm_route_ec_ref_rx);
3807 mutex_unlock(&routing_lock);
3808 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3809 msm_route_ec_ref_rx, e, update);
3810 return 0;
3811}
3812
3813static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3814 "PRI_MI2S_TX", "SEC_MI2S_TX",
3815 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3816 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3817 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3818 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Bala Kishore Pati1a044712018-10-03 12:12:36 +05303819 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3820 "PRI_TDM_RX_1"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303821
3822static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3823 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3824};
3825
3826static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3827 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3828 msm_route_ec_ref_rx_enum[0],
3829 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3830
3831static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3832 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3833 msm_route_ec_ref_rx_enum[0],
3834 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3835
3836static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3837 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3838 msm_route_ec_ref_rx_enum[0],
3839 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3840
3841static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3842 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3843 msm_route_ec_ref_rx_enum[0],
3844 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3845
3846static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3847 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3848 msm_route_ec_ref_rx_enum[0],
3849 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3850
3851static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3852 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3853 msm_route_ec_ref_rx_enum[0],
3854 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3855
3856static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3857 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3858 msm_route_ec_ref_rx_enum[0],
3859 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3860
3861static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3862 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3863 msm_route_ec_ref_rx_enum[0],
3864 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3865
Asish Bhattacharya34504582017-08-08 12:55:01 +05303866static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
3867 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
3868 msm_route_ec_ref_rx_enum[0],
3869 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3870
Laxminath Kasam38070be2017-08-17 18:21:59 +05303871static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
3872 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
3873 msm_route_ec_ref_rx_enum[0],
3874 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3875
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303876static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
3877 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
3878 msm_route_ec_ref_rx_enum[0],
3879 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3880
3881static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
3882 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
3883 msm_route_ec_ref_rx_enum[0],
3884 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3885
3886static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
3887 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
3888 msm_route_ec_ref_rx_enum[0],
3889 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3890
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05303891static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
3892 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
3893 msm_route_ec_ref_rx_enum[0],
3894 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3895
3896static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
3897 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
3898 msm_route_ec_ref_rx_enum[0],
3899 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3900
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303901static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
3902 struct snd_ctl_elem_value *ucontrol)
3903{
3904 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
3905
3906 mutex_lock(&routing_lock);
3907 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
3908 mutex_unlock(&routing_lock);
3909 return 0;
3910}
3911
3912static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
3913 struct snd_ctl_elem_value *ucontrol)
3914{
Asish Bhattacharya34504582017-08-08 12:55:01 +05303915 struct snd_soc_dapm_widget *widget =
3916 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303917 int mux = ucontrol->value.enumerated.item[0];
3918 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3919 int ret = 1;
3920 bool state = true;
3921 uint16_t ext_ec_ref_port_id;
3922 struct snd_soc_dapm_update *update = NULL;
3923
3924 if (mux >= e->items) {
3925 pr_err("%s: Invalid mux value %d\n", __func__, mux);
3926 return -EINVAL;
3927 }
3928
3929 mutex_lock(&routing_lock);
3930 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
3931
3932 switch (msm_route_ext_ec_ref) {
3933 case EXT_EC_REF_PRI_MI2S_TX:
3934 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3935 break;
3936 case EXT_EC_REF_SEC_MI2S_TX:
3937 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3938 break;
3939 case EXT_EC_REF_TERT_MI2S_TX:
3940 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3941 break;
3942 case EXT_EC_REF_QUAT_MI2S_TX:
3943 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3944 break;
3945 case EXT_EC_REF_QUIN_MI2S_TX:
3946 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
3947 break;
3948 case EXT_EC_REF_SLIM_1_TX:
3949 ext_ec_ref_port_id = SLIMBUS_1_TX;
3950 break;
3951 case EXT_EC_REF_NONE:
3952 default:
3953 ext_ec_ref_port_id = AFE_PORT_INVALID;
3954 state = false;
3955 break;
3956 }
3957
3958 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
3959 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
3960
3961 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
3962 mutex_unlock(&routing_lock);
3963 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
3964 update);
3965 } else {
3966 ret = -EINVAL;
3967 mutex_unlock(&routing_lock);
3968 }
3969 return ret;
3970}
3971
3972static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
3973 "SEC_MI2S_TX", "TERT_MI2S_TX",
3974 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
3975 "SLIM_1_TX"};
3976
3977static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
3978 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
3979};
3980
3981static const struct snd_kcontrol_new voc_ext_ec_mux =
3982 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
3983 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
3984
3985
3986static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05303987 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
3988 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303989 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
3990 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05303991 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
3992 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303993 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
3994 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05303995 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
3996 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303997 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
3998 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05303999 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4000 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304001 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4002 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304003 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4004 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304005 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4006 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304007 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4008 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304009 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4010 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304011 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4012 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304013 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4014 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304015 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4016 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304017 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4018 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304019 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4020 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304021 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4022 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304023 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4024 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304025 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4026 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304027 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4028 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304029 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4030 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304031 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4032 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304033 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4034 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304035 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4036 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304037 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4038 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304039 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4040 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304041 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4042 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304043 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4044 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304045 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4046 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304047 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4048 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304049 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4050 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304051 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4052 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304053 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4054 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304055 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4056 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304057 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4058 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304059 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4060 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304061 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4062 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304063 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4064 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304065 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4066 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304067 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4068 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304069 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4070 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304071};
4072
4073static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304074 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4075 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304076 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4077 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304078 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4079 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304080 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4081 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304082 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4083 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304084 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4085 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304086 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4087 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304088 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4089 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304090 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4091 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304092 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4093 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304094 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4095 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304096 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4097 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304098 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4099 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304100 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4101 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304102 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4103 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304104 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4105 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304106 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4107 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304108 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4109 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304110 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4111 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304112 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4113 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304114 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4115 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304116 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4117 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304118 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4119 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304120 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4121 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304122 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4123 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304124 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4125 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304126 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4127 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304128 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4129 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304130 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4131 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304132 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4133 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304134 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4135 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4137 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304138 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4139 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304140 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4141 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304142 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4143 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304144 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4145 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304146 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4147 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304148 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4149 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304150 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4151 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304152 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4153 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304154 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4155 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304156 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4157 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304158};
4159
4160static const struct snd_kcontrol_new spdif_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304161 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4162 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304163 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4164 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304165 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4166 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304167 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4168 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304169 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4170 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304171 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4172 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304173 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4174 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304175 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4176 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304177 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4178 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304179 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4180 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304181 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4182 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304183 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4184 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304185 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4186 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304187 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4188 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304189 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4190 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304191 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4192 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304193 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4194 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304195 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4196 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304197 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4198 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304199 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4200 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304201 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4202 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304203 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4204 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304205 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4206 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304207 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4208 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304209 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4210 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304211 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4212 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304213 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4214 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304215 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4216 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304217 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4218 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304219 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4220 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304221 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4222 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304223 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4224 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304225 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4226 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304227 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4228 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304229 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4230 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304231 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4232 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304233 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4234 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304235 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4236 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304237 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4238 MSM_BACKEND_DAI_SPDIF_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304239 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4240 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304241 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4242 MSM_BACKEND_DAI_SPDIF_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304243 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4244 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304245};
4246
4247static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304248 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4249 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304250 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4251 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304252 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4253 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304254 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4255 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304256 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4257 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304258 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4259 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304260 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4261 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304262 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4263 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304264 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4265 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304266 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4267 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304268 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4269 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304270 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4271 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304272 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4273 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304274 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4275 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304276 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4277 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304278 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4279 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304280 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4281 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304282 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4283 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304284 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4285 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304286 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4287 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304288 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4289 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304290 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4291 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304292 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4293 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304294 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4295 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304296 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4297 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304298 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4299 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304300 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4301 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304302 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4303 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304304 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4305 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304306 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4307 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304308 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4309 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304310 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4311 msm_routing_put_audio_mixer),
4312};
4313
4314static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304315 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4316 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304317 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4318 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304319 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4320 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304321 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4322 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304323 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4324 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304325 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4326 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304327 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4328 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304329 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4330 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304331 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4332 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304333 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4334 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304335 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4336 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304337 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4338 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304339 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4340 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304341 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4342 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304343 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4344 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304345 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4346 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304347 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4348 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304349 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4350 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304351 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4352 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304353 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4354 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304355 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4356 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304357 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4358 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304359 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4360 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304361 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4362 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304363 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4364 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304365 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4366 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304367 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4368 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304369 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4370 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304371 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4372 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304373 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4374 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304375 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4376 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304377 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4378 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304379 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4380 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304381 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4382 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304383 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4384 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304385 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4386 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304387 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4388 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304389 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4390 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304391 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4392 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304393 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4394 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304395 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4396 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304397 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4398 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304399};
4400
4401static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304402 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4403 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304404 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4405 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304406 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4407 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304408 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4409 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304410 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4411 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304412 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4413 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304414 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4415 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304416 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4417 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304418 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4419 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304420 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4421 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304422 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4423 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304424 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4425 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304426 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4427 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304428 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4429 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304430 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4431 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304432 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4433 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304434 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4435 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304436 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4437 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304438 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4439 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304440 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4441 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304442 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4443 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304444 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4445 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304446 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4447 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304448 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4449 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304450 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4451 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304452 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4453 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304454 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4455 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304456 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4457 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304458 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4459 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304460 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4461 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304462 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4463 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304464 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4465 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304466 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4467 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304468 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4469 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304470 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4471 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304472 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4473 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304474 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4475 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304476 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4477 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304478 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4479 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304480 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4481 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304482 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4483 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304484 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4485 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304486};
4487
4488static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304489 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4490 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304491 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4492 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304493 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4494 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304495 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4496 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304497 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4498 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304499 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4500 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304501 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4502 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304503 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4504 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304505 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4506 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304507 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4508 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304509 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4510 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304511 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4512 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304513 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4514 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304515 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4516 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304517 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4518 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304519 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4520 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304521 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4522 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304523 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4524 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304525 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4526 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304527 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4528 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304529 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4530 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304531 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4532 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304533 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4534 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304535 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4536 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304537 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4538 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304539 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4540 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304541 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4542 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304543 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4544 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304545 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4546 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304547 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4548 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304549 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4550 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304551 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4552 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304553 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4554 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304555 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4556 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304557 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4558 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304559 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4560 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304561 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4562 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304563 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4564 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304565 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4566 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304567 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4568 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304569 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4570 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304571 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4572 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304573};
4574
4575static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304576 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4577 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304578 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4579 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304580 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4581 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304582 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4583 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304584 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4585 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304586 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4587 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304588 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4589 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304590 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4591 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304592 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4593 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304594 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4595 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304596 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4597 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304598 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4599 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304600 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4601 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304602 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4603 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304604 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4605 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304606 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4607 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304608 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4609 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304610 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4611 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304612 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4613 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304614 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4615 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304616 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4617 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304618 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4619 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304620 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4621 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304622 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4623 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304624 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4625 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304626 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4627 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304628 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4629 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304630 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4631 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304632 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4633 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304634 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4635 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304636 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4637 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304638 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4639 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304640 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4641 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304642 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4643 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304644 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4645 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304646 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4647 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304648 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4649 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304650 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4651 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304652 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4653 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304654 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4655 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304656 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4657 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304658 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4659 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304660};
4661
4662static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304663 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4664 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304665 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4666 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304667 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4668 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304669 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4670 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304671 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4672 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304673 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4674 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304675 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4676 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304677 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4678 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304679 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4680 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304681 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4682 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304683 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4684 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304685 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4686 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304687 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4688 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304689 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4690 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304691 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4692 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304693 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4694 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304695 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4696 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304697 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4698 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304699 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4700 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304701 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4702 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304703 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4704 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304705 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4706 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304707 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4708 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304709 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4710 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304711 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4712 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304713 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4714 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304715 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4716 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304717 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4718 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304719 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4720 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304721 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4722 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304723 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4724 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304725 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4726 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304727 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4728 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304729 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4730 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304731 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4732 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304733 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4734 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304735 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4736 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304737 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4738 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304739 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4740 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304741 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4742 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304743 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4744 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304745 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4746 msm_routing_put_audio_mixer),
4747
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304748};
4749
4750static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304751 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4752 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304753 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4754 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304755 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4756 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304757 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4758 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304759 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4760 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304761 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4762 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304763 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4764 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304765 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4766 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304767 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4768 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304769 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4770 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304771 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4772 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304773 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4774 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304775 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4776 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304777 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4778 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304779 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4780 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304781 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4782 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304783 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4784 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304785 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4786 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304787 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4788 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304789 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4790 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304791 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4792 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304793 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4794 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304795 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4796 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304797 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4798 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304799 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4800 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304801 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4802 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304803 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4804 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304805 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4806 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304807 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4808 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304809 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4810 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304811 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4812 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304813 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4814 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304815 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4816 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304817 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4818 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304819 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4820 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304821 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4822 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304823 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4824 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304825 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4826 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304827};
4828
4829static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304830 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4831 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304832 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4833 msm_routing_put_audio_mixer),
4834};
4835
4836static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304837 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304839 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304841 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304843 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304845 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304849 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304853 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4854 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304855 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4856 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304857 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4858 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304859 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4860 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304861 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4862 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304863 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4864 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304865 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4866 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304867 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4868 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304869 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4870 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304871 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4872 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304873 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4874 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304875 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4876 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304877 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4878 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304879 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4880 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304881 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4882 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304883 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4884 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304885 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4886 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304887 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4888 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304889 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4890 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304891 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4892 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304893 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4894 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304895 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4896 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304897 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4898 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304899 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4900 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304901 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4902 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304903 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4904 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304905 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4906 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304907 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4908 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304909 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4910 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304911 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4912 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304913 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4914 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304915 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4916 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304917 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4918 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304919 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4920 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304921};
4922
4923static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304924 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4925 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304926 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4927 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304928 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4929 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304932 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4933 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304934 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304936 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4937 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304940 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4941 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304944 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4945 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304946 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4947 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304948 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4949 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304950 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4951 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304952 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4953 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4955 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304956 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4957 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4959 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304960 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4961 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4963 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304964 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4965 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304966 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4967 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304968 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4969 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304972 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4973 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304976 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4977 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304980 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4981 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304984 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4985 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304988 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4989 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304992 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4993 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304996 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4997 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305000 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305002 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305004 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5005 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305006 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
5008
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305009};
5010
5011static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305012 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5013 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305014 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5015 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305016 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5017 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305018 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5019 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305020 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5021 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305022 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5023 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305024 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305028 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5029 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305030 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5031 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305032 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5033 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305034 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5035 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305036 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5037 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305038 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5039 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305040 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5041 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305042 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5043 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305044 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5045 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305046 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5047 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305048 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5049 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305050 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5051 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305052 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5053 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305054 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5055 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305056 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305060 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305064 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305068 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305072 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
5076};
5077
5078static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305079 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5080 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305081 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5082 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305083 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5084 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305085 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5086 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305087 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5088 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305089 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5090 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305091 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5092 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305093 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5094 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305095 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5096 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305097 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5098 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305099 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305103 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5104 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305105 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5106 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305107 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5108 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305109 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5110 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305111 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5112 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305113 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5114 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305115 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5116 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305117 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5118 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305119 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5120 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305121 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5122 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305123 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5124 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305125 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5126 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305127 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5128 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305129 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5130 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305131 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5132 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305133 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5134 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305135 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5136 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305137 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5138 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305139 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5140 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305141 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5142 msm_routing_put_audio_mixer),
5143};
5144
5145static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305146 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5147 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305148 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5149 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305150 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5151 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305152 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5153 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305154 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5155 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305156 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5157 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305158 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5159 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305160 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5161 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305162 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5163 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305164 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5165 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305166 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5167 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305168 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5169 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305170 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5171 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305172 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5173 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305174 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5175 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305176 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5177 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305178 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5179 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305180 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5181 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305182 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5183 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305184 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5185 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305186 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5187 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305188 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5189 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305190 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5191 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305192 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5193 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305194 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5195 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305196 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5197 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305198 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5199 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305200 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5201 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305202 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5203 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305204 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5205 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305206 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5207 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305208 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5209 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305210 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5211 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305212 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5213 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305214 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5215 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305216 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5217 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305218 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5219 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305220 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5221 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305222 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5223 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305224 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5225 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305226 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5227 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305228 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5229 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305230};
5231
5232static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305233 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5234 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305235 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5236 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305237 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5238 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305239 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5240 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305241 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5242 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305243 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5244 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305245 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305249 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305253 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305255 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305257 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305261 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305265 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5266 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305267 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5268 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305269 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5270 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305271 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5272 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305273 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5274 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305275 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5276 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305277 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5278 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305279 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5280 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305281 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5282 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305283 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5284 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305285 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5286 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305287 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5288 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305289 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5290 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305291 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5292 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305293 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5294 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305295 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5296 msm_routing_put_audio_mixer),
5297};
5298
5299 /* incall music delivery mixer */
5300static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305301 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5302 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305303 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5304 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305305 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5306 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305307 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5308 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305309 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5310 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305311 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5312 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305313 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5314 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305315 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5316 msm_routing_put_audio_mixer),
5317};
5318
5319static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305320 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5321 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305322 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5323 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305324 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5325 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305326 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5327 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305328 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5329 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305330 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5331 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305332 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5333 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305334 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5335 msm_routing_put_audio_mixer),
5336};
5337
5338static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305339 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5340 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305341 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5342 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305343 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5344 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305345 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5346 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305347 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5348 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305349 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5350 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305351 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5352 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305353 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5354 msm_routing_put_audio_mixer),
5355};
5356
5357static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305358 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5359 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305360 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5361 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305362 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5363 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305364 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5365 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305366 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5367 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305368 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5369 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305370 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5371 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305372 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5373 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305374 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5375 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305376 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5377 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305378 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5379 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305380 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5381 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305382 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5383 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305384 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5385 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305386 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5387 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305388 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5389 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305390 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5391 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305392 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5393 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305394 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5395 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305396 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5397 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305398 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5399 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305400 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5401 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305402 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5403 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305404 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5405 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305406 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5407 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305408 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5409 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305410 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5411 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305412 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5413 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305414 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5415 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305416 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5417 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305418 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5419 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305420 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5421 msm_routing_put_audio_mixer),
5422};
5423
5424static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305425 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5426 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305427 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5428 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305429 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5430 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305431 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5432 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305433 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5434 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305435 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5436 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305437 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5438 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305439 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5440 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305441 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5442 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305443 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5444 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305445 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5446 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305447 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5448 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305449 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5450 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305451 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5452 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305453 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5454 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305455 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5456 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305457 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5458 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305459 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5460 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305461 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5462 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305463 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5464 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305465 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5466 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305467 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5468 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305469 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5470 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305471 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5472 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305473 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5474 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305475 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5476 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305477 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5478 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305479 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5480 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305481 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5482 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305483 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5484 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305485 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5486 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305487 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5488 msm_routing_put_audio_mixer),
5489};
5490
5491static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305492 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5493 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305494 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5495 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305496 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5497 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305498 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5499 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305500 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5501 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305502 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5503 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305504 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5505 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305506 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5507 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305508 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5509 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305510 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5511 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305512 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5513 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305514 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5515 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305516 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5517 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305518 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5519 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305520 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5521 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305522 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5523 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305524 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5525 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305526 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5527 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305528 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5529 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305530 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5531 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305532 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5533 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305534 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5535 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305536 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5537 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305538 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5539 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305540 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5541 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305542 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5543 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305544 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5545 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305546 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5547 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305548 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5549 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305550 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5551 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305552 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5553 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305554 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5555 msm_routing_put_audio_mixer),
5556};
5557
5558static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305559 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5560 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5562 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305563 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5564 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305565 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5566 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305567 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5568 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5570 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305571 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5572 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305573 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5574 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305575 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5576 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305577 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5578 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305579 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5580 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305581 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5582 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305583 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5584 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305585 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5586 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305587 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5588 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5590 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305591 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5592 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305593 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5594 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305595 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5596 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305597 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5598 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305599 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5600 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305601 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5602 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305603 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5604 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305605 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5606 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305607 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305609 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305611 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305613 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305615 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305617 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305619 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305623 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5624 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305625 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5626 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305627 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5628 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305629 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5630 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305631 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5632 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305633 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5634 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305635 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5636 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305637 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5638 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305639 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305641 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305643};
5644
5645static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305646 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5647 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305648 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5649 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305650 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5651 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305652 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5653 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305654 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5655 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305656 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5657 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305658 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5659 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305660 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5661 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305662 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5663 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305664 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5665 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305666 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5667 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5669 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305670 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305674 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305678 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305682 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305686 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305690 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5691 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305692 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5693 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305694 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5695 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305696 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5697 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305698 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5699 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305700 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5701 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305702 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5703 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305704 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5705 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305706 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5707 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305708 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5709 msm_routing_put_audio_mixer),
5710};
5711
5712static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305713 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5714 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305715 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5716 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305717 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5718 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305719 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5720 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305721 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5722 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305723 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5724 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305725 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5726 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305727 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5728 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305729 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305731 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305733 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305735 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305737 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305741 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305745 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305749 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305753 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305757 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305761 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305765 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305769 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305773 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305777 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305781 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305785 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305789 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305793 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305797};
5798
5799static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305800 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5801 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305802 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5803 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305804 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305806 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305808 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305810 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305812 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305814 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305816 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305818 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305820 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305822 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305824 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305826 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305828 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305830 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305832 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305834 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305836 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305838 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305840 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305842 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305844 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305846 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305848 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305850 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305852 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305854 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305856 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305858 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305860 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305862 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305864 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305866 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305868 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305870 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305872 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305874 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305876 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305878 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305880 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305882 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305884};
5885
5886static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305887 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305889 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305891 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5892 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305893 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5894 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305895 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305897 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305899 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305901 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305903 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305905 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305907 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305909 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305911 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305913 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305915 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305917 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305919 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5920 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305921 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305923 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305925 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305927 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305929 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305931 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305933 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305935 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305937 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305939 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305941 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305943 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305945 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305947 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5948 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305949 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305951 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5952 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305953 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305955 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5956 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305957 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305959 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5960 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305961 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305963 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5964 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305965 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305967 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305969 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305971};
5972
5973static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305974 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5975 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305976 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305978 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5979 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305980 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305982 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305984 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305986 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305988 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305990 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305992 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305994 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305996 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305998 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306000 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306002 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306004 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306006 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306008 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306010 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306012 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306014 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306016 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306018 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6019 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306020 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6021 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306022 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6023 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306024 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6025 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306026 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6027 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306028 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6029 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306030 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6031 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306032 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6033 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306034 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306036 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306038 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306040 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306042 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6043 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306044 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6045 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306046 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6047 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306048 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6049 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306050 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05306052 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306054 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05306056 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306058};
6059
6060static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306061 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6062 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306063 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6064 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306065 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6066 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306067 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6068 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306069 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306071 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306073 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306075 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306077 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306079 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306081 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306083 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306085 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306087 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306089 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306091 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306093 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306095 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306097 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306099 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306101 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306103 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306105 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6106 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306107 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6108 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306109 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6110 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306111 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6112 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306113 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6114 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306115 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6116 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306117 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6118 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306119 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6120 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306121 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6122 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306123 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6124 msm_routing_put_audio_mixer),
6125};
6126
6127static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306128 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6129 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306130 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6131 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306132 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306134 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306136 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306138 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306140 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306142 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306144 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306146 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306148 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306150 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306152 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306154 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306156 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306158 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306160 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306162 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306164 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306166 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306168 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306170 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306172 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306174 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306176 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6177 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306178 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6179 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306180 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6181 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306182 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6183 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306184 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6185 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306186 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6187 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306188 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6189 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306190 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6191 msm_routing_put_audio_mixer),
6192};
6193
Rohit Kumara5077932017-09-10 22:05:05 +05306194static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306195 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306197 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306199 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306201 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306203 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6204 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306205 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6206 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306207 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306209 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306211 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306213 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306215 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306217 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306219 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306221 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306223 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306225 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306227 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306229 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306231 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306233 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306235 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306237 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306239 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306241 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306243 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306245 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306247 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6248 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306249 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6250 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306251 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6252 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306253 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6254 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306255 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306257 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
6259};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306260static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306261 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306263 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306265 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306267 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306269 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306271 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306273 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306275 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306277 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306279 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306281 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306283 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306285 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306287 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306289 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306291 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306293 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6294 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306295 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6296 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306297 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6298 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306299 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6300 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306301 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6302 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306303 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6304 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306305 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306307 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306309 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306311 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306313 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306315 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306317 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306319 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306321 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306323 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
6325};
6326
6327static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306328 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306330 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306332 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6333 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6335 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306336 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6337 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306338 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6339 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306340 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306342 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306344 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306346 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306348 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306350 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306352 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306354 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306356 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306358 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306360 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6361 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306362 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6363 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306364 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6365 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306366 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6367 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306368 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6369 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306370 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6371 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306372 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6373 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306374 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6375 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306376 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306378 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306380 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306382 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306384 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306386 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306388 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306390 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
6392};
6393
6394static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306395 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306397 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306399 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306401 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306403 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306405 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306407 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306409 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306411 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306413 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306415 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306417 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306419 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306421 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306423 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306425 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306427 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6428 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306429 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6430 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306431 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6432 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306433 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6434 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306435 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6436 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306437 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6438 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306439 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6440 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306441 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6442 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306443 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6444 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306445 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6446 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306447 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306449 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306451 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306453 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306455 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306457 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
6459};
6460
6461static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306462 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306464 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306466 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306468 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306470 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306472 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306474 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306476 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306478 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306480 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306482 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306484 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306486 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306488 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306490 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306492 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306494 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6495 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306496 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6497 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306498 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6499 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306500 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6501 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306502 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6503 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306504 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6505 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306506 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6507 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306508 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6509 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306510 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306512 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306514 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306516 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306518 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306520 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306522 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306524 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
6526};
6527
6528static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306529 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306533 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306537 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306541 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306545 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306549 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306553 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306557 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306561 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306563 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306565 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306569 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306571 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306573 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306575 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306577 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306579 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306581 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306583 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306585 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306587 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306589 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306591 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
6593};
6594
6595static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306596 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306598 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306600 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306604 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306606 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306608 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306610 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306612 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306614 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306616 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306618 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306620 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306622 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306624 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306628 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306630 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306632 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306634 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306636 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306638 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306640 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306642 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306644 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306646 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306648 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306650 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306652 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306654 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306656 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306658 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
6660};
6661
6662static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306663 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306665 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306667 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306669 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306671 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306673 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306675 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306677 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306679 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306681 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306683 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306685 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306687 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306689 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306691 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306693 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306695 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306697 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306699 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306701 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306703 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306705 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306707 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306711 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306715 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306719 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306721 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306723 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
6727};
6728
6729static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306730 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306732 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306734 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306738 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306742 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306746 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306750 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306754 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306758 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306762 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306766 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306770 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306774 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306778 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306782 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306786 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306790 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
6794};
6795
6796static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306797 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6798 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306799 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6800 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306801 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6802 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306803 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6804 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306805 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6806 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306807 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6808 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306809 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6810 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306811 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6812 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306813 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6814 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306815 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6816 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306817 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306821 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306825 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306829 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306833 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306837 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306841 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306845 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306849 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306853 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306857 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
6861};
6862
6863static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306864 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6865 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306866 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6867 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306868 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6869 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306870 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6871 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306872 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6873 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306874 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6875 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306876 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6877 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306878 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6879 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306880 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6881 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306882 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6883 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306884 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6885 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6887 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306888 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306890 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306892 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306894 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306896 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306898 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306900 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306902 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306904 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306906 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306908 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306910 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306912 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306916 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306920 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306924 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
6928};
6929
6930static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306931 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6932 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306933 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6934 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306935 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6936 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306937 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6938 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306939 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6940 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306941 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6942 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306943 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6944 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306945 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6946 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306947 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6948 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306949 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6950 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306951 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6952 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306953 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6954 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306955 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6956 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306957 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6958 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306959 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6960 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306961 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6962 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306963 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6964 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306965 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6966 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306967 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6968 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306969 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6970 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306971 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6972 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306973 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6974 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306975 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6976 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306977 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6978 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306979 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6980 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306981 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6982 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306983 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306987 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306991 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306993 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
6995};
6996
6997static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306998 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6999 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307000 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7001 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307002 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7003 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307004 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7005 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307006 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7007 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307008 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7009 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307010 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7011 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7013 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307014 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7015 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307016 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7017 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307018 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7019 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307020 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7021 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307022 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7023 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307024 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7025 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307026 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7027 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307028 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7029 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307030 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7031 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307032 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7033 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307034 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7035 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307036 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7037 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307038 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7039 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307040 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7041 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307042 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7043 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307044 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7045 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307046 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7047 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307048 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7049 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307050 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7051 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307052 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7053 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307054 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7055 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307056 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7057 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307058 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7059 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307060 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7061 msm_routing_put_audio_mixer),
7062};
7063
7064static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307065 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7066 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307067 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7068 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307069 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7070 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307071 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7072 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307073 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7074 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307075 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7076 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307077 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7078 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307079 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7080 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307081 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7082 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307083 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7084 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307085 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7086 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307087 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7088 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307089 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7090 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307091 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7092 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307093 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7094 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307095 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7096 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307097 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7098 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307099 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7100 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307101 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7102 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307103 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7104 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307105 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7106 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307107 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7108 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307109 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7110 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307111 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7112 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307113 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7114 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307115 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7116 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307117 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7118 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307119 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7120 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307121 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7122 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307123 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7124 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307125 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7126 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307127 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7128 msm_routing_put_audio_mixer),
7129};
7130
7131static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307132 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7133 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307134 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7135 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307136 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7137 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307138 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7139 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307140 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7141 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307142 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7143 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307144 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7145 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307146 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7147 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307148 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7149 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307150 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7151 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307152 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7153 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307154 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7155 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307156 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7157 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307158 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7159 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307160 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7161 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307162 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7163 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307164 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7165 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307166 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7167 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307168 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7169 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307170 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7171 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307172 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7173 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307174 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7175 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307176 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7177 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307178 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7179 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307180 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7181 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307182 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7183 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307184 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7185 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307186 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7187 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307188 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7189 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307190 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7191 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307192 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7193 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307194 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7195 msm_routing_put_audio_mixer),
7196};
7197
7198static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307199 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307203 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307205 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307207 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307211 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307215 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307219 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307223 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307227 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307231 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307235 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307237 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307239 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307243 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307247 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307251 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307253 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307255 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307257 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307259 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
7263};
7264
7265static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307266 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7267 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307268 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7269 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307270 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307272 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307274 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307276 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307278 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307282 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307286 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307290 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307294 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307298 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307302 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307304 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307306 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307308 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307310 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307314 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307318 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307322 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307326 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
7330};
7331
7332static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307333 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7334 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307335 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7336 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307337 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7338 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307339 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7340 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307341 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7342 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307343 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7344 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307345 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7346 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307347 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7348 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307349 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307353 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307357 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307361 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307365 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307369 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307373 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307377 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307381 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307385 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307389 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307393 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307397 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
7401};
7402
7403static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307404 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7405 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307406 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7407 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307408 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7409 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307410 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7411 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307412 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7413 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307414 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7415 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307416 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7417 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307418 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7419 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307420 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307422 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307424 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307426 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307428 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307432 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307434 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307436 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307438 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307440 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307442 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307444 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307448 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307452 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307456 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307460 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307464 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
7468};
7469
7470static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307471 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7472 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307473 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7474 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307475 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7476 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307477 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7478 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307479 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7480 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307481 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7482 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307483 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7484 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307485 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7486 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307487 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7488 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307489 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7490 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307491 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307495 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307497 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307499 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307501 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307503 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307505 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307507 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307511 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307515 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307519 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307523 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307527 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307529 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307531 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307533 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307535 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
7539};
7540
7541static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307542 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7543 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307544 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7545 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307546 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7547 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307548 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7549 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307550 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7551 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307552 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7553 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307554 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7555 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307556 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7557 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307558 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307560 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307562 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307564 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307566 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307568 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307570 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307572 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307574 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307576 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307578 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307582 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307586 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307590 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307592 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307594 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307596 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307598 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307602 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307606 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
7610};
7611
7612static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307613 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7614 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307615 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7616 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307617 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7618 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307619 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7620 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307621 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7622 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307623 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7624 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307625 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7626 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307627 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7628 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307629 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307633 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307637 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307641 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307643 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307645 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307647 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307649 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307653 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307657 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307661 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307665 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307669 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307673 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307677 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
7681};
7682
Rohit Kumara5077932017-09-10 22:05:05 +05307683static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307684 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7685 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307686 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7687 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307688 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7689 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307690 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7691 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307692 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7693 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307694 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7695 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307696 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307698 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307700 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307704 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307708 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307712 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307716 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307720 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307724 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307728 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307732 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307736 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307740 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307744 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307748 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
7752};
7753
7754static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307755 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7756 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307757 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7758 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307759 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7760 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307761 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7762 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307763 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307765 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307767 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307769 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307771 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307775 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307779 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307783 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307785 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307787 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307791 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307795 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307799 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307803 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307807 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307811 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307815 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
7819};
7820
7821static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307822 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7823 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307824 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7825 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307826 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7827 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307828 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7829 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307830 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7831 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307832 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7833 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307834 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307836 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307838 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307840 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307842 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307846 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307850 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307854 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307856 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307858 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307862 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307866 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307870 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307872 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307874 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307878 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307882 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307886 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
7890};
7891
7892static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307893 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7894 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307895 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7896 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307897 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7898 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307899 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7900 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307901 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7902 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307903 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7904 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307905 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307907 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307909 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307913 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307917 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307921 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307925 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307927 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307929 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307933 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307937 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307941 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307943 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307945 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307949 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307953 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307957 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
7961};
7962
7963static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307964 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7965 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307966 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7967 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307968 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7969 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307970 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7971 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307972 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7973 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307974 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7975 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307976 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307978 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307980 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307984 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307988 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307992 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307996 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308000 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308004 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308008 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308012 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308016 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308020 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308024 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308028 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
8032};
8033
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308034static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308035 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
8036 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308037 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8038 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308039 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8040 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308041 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8042 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308043 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8044 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308045 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8046 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308047 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308051 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308055 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308059 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308063 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308067 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308071 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308075 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308079 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308083 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308087 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308091 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308095 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308099 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308103 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308107 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308111 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308113 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308115 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308117 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308119 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308121 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308123 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308125 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308127 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308129 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308131 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308133 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308135 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308137 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308139 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308141 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308143 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308145 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308147 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308149 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308151 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8152 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308153 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8154 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308155 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8156 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308157 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8158 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308159 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8160 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308161 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8162 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308163 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308165 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308167 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308169 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308171 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308173 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308175 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8176 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308177 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8178 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308179 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8180 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308181 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8182 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308183 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8184 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308185 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8186 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308187 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8188 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308189 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8190 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308191 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8192 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308193 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8194 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308195 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8196 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308197 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8198 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308199 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8200 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308201 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8202 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308203 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8204 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308205 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8206 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308207 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
8208 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308209 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8210 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308211 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8212 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308213 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8214 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308215 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8216 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308217 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8218 msm_routing_put_audio_mixer),
8219};
8220
8221static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308222 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8223 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308224 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8225 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308226 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8227 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308228 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8229 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308230 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8231 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308232 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8233 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308234 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308236 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308238 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308240 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308242 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308244 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308246 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8247 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308248 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8249 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308250 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8251 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308252 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8253 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308254 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8255 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308256 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8257 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308258 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
8259 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308260 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8261 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308262 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
8263 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308264 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8265 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308266 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8267 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308268 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8269 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308270 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8271 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308272 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8273 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308274 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8275 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308276 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8277 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308278 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8279 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308280 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8281 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308282 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8283 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308284 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8285 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308286 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8287 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308288 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8289 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308290 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8291 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308292 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8293 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308294 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8295 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308296 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8297 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308298 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8299 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308300 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8301 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308302 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8303 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308304 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8305 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308306 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8307 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308308 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8309 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308310 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8311 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308312 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8313 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308314 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8315 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308316 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8317 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308318 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8319 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308320 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8321 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308322 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8323 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308324 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8325 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308326 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8327 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308328 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8329 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308330 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8331 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308332 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8333 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308334 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8335 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308336 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8337 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308338 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8339 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308340 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8341 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308342 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8343 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308344 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8345 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308346 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8347 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308348 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8349 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308350 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8351 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308352 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8353 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308354 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8355 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308356 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8357 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308358 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8359 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308360 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8361 msm_routing_put_audio_mixer),
8362};
8363
8364static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308365 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8366 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308367 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8368 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308369 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8370 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308371 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8372 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308373 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8374 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308375 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8376 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308377 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8378 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308379 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8380 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308381 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8382 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308383 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8384 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308385 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
8386 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308387 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8388 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308389 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
8390 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308391 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8392 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308393 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
8394 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308395 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8396 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308397 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
8398 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308399 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8400 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308401 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
8402 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308403 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8404 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308405 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8406 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308407 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8408 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308409 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8410 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308411 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8412 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308413 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8414 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308415 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8416 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308417 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8418 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308419 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8420 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308421 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8422 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308423 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8424 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308425 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8426 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308427 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8428 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308429 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8430 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308431 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8432 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308433 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8434 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308435 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8436 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308437 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8438 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308439 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8440 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308441 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8442 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308443 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8444 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308445 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8446 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308447 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8448 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308449 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8450 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308451 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8452 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308453 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8454 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8456 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308457 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8458 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308459 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8460 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308461 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8462 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308463 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8464 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308465 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308469 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308473 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308477 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308481 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308485 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308489 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308493 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308497 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308501 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308505};
8506
8507static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308508 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8509 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308510 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8511 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308512 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8513 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308514 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8515 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308516 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8517 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308518 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8519 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308520 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8521 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308522 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8523 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308524 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8525 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308526 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8527 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308528 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
8529 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308530 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8531 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308532 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
8533 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308534 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8535 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308536 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308538 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308540 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308542 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308544 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308548 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308552 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308556 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308560 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308564 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308568 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308572 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308576 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308580 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308584 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308588 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308592 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308596 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308600 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308604 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308608 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308612 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308616 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308618 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308620 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8621 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308622 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8623 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308624 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8625 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308626 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8627 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308628 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8629 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308630 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8631 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308632 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8633 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308634 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8635 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308636 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8637 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308638 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8639 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308640 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8641 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308642 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8643 msm_routing_put_audio_mixer),
8644};
8645
8646static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308647 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308651 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308655 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308659 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308663 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308667 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308671 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308675 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308679 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308683 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308687 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308691 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308693 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308695 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8696 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308697 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8698 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308699 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8700 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308701 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8702 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308703 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8704 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308705 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8706 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308707 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8708 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308709 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8710 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308711 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8712 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308713 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8714 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308715 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8716 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308717 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8718 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308719 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8720 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308721 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8722 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308723 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8724 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308725 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8726 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308727 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8728 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308729 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8730 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308731 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8732 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308733 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8734 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308735 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8736 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308737 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8738 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308739 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8740 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308741 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8742 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308743 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8744 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308745 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8746 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308747 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8748 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308749 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8750 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308751 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8752 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308753 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8754 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308755 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8756 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308757 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8758 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308759 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8760 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308761 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8762 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308763 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8764 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308765 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8766 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308767 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8768 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308769 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8770 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308771 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8772 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308773 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8774 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308775 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8776 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308777 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8778 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308779 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8780 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308781 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8782 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308783 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8784 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308785 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8786 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308787 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8788 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308789 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8790 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308791 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8792 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308793 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8794 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308795 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
8796 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308797 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8798 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308799 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8800 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308801 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8802 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308803 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8804 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308805 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8806 msm_routing_put_audio_mixer),
8807};
8808
8809static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308810 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8811 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308812 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8813 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308814 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8815 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308816 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8817 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308818 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8819 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308820 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8821 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308822 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8823 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308824 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8825 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308826 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8827 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308828 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8829 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308830 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8831 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308832 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8833 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308834 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8835 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308836 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8837 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308838 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8839 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308840 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8841 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308842 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8843 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308844 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8845 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308846 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8847 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308848 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8849 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308850 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
8851 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308852 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8853 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308854 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
8855 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308856 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8857 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308858 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
8859 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308860 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8861 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308862 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8863 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308864 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8865 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308866 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8867 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308868 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8869 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308870 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8871 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308872 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8873 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308874 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8875 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308876 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8877 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308878 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8879 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308880 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8881 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308882 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8883 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308884 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8885 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308886 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8887 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308888 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8889 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308890 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8891 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308892 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8893 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308894 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8895 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308896 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8897 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308898 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8899 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308900 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8901 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308902 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8903 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308904 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8905 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308906 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8907 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308908 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8909 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308910 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8911 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308912 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8913 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308914 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8915 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308916 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8917 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308918 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8919 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308920 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8921 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308922 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8923 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308924 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8925 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308926 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8927 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308928 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8929 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308930 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8931 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308932 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8933 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308934 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8935 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308936 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8937 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308938 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8939 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308940 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8941 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308942 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8943 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308944 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8945 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308946 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8947 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308948 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8949 msm_routing_put_audio_mixer),
8950};
8951
8952static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308953 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8954 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308955 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8956 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308957 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8958 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308959 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8960 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308961 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8962 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308963 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8964 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308965 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8966 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308967 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8968 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308969 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8970 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308971 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8972 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308973 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8974 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308975 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8976 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308977 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8978 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308979 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8980 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308981 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8982 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308983 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8984 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308985 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8986 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308987 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8988 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308989 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8990 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308991 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8992 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308993 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
8994 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308995 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8996 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308997 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
8998 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308999 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9000 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309001 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9002 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309003 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9004 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309005 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9006 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309007 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9008 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309009 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9010 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309011 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9012 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309013 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9014 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309015 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9016 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309017 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9018 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309019 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9020 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309021 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9022 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309023 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9024 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309025 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9026 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309027 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9028 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309029 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9030 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309031 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9032 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309033 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9034 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309035 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9036 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309037 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309041 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309045 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309049 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309053 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309057 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309061 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309065 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309069 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309073 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309077 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309081 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309085 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309089 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
9093};
9094
Asish Bhattacharya34504582017-08-08 12:55:01 +05309095static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309096 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9097 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309098 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9099 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309100 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9101 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309102 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9103 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309104 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9105 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309106 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9107 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309108 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9109 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309110 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9111 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309112 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9113 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309114 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9115 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309116 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9117 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309118 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9119 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309120 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309122 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309124 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309126 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309128 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309130 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309132 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9133 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309134 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9135 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309136 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9137 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309138 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9139 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309140 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309144 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309148 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309152 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309156 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309160 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309164 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309168 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309172 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309174 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309176 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309180 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309184 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309188 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309192 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309196 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309200 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309204 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309208 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309212 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05309214 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309216 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309218 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309220 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309222 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309224 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309228 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309230 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309232 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309234 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309236 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309238 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
9240};
9241
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309242static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309243 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309247 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309251 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309255 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309259 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309263 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309267 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309271 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309275 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309279 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309283 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309287 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309291 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309295 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309299 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309301 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309303 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309307 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309311 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9312 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309313 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9314 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309315 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9316 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309317 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9318 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309319 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9320 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309321 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9322 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309323 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9324 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Sachin Mohan Gadagd1b8fbc2018-07-20 15:50:17 +05309325 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9326 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309327};
9328
Laxminath Kasam38070be2017-08-17 18:21:59 +05309329static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309330 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309334 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309338 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309342 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309346 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309350 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309354 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309358 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309362 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -07009364 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309366 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309370 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309374 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309378 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309382 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309386 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309390 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309394 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309398 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309402 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009404 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309406 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009408 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309410 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009412 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309414 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9415 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009416 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9417 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309418 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009420 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309422 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009424 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309426 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009428 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309430 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9431 MSM_BACKEND_DAI_INT2_MI2S_TX,
9432 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9433 msm_routing_put_audio_mixer),
9434 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9435 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009436 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9437 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +05309438};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309439static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309440 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309442 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309444 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309446 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309448 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309450 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309452 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309454 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309456 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309458 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309460 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309462 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309464 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309466 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309468 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309470 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
Meng Wangbe8194e2018-04-25 10:40:01 +08009472 SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9473 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9474 msm_routing_put_audio_mixer),
9475 SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9476 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9477 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309478};
9479
9480static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309481 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9482 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309483 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9484 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309485 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9486 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309487 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9488 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309489 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9490 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309491 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9492 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309493 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9494 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Meng Wangbe8194e2018-04-25 10:40:01 +08009495 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9496 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309497 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9498 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309499 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9500 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309501 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9502 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309503 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9504 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309505 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9506 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309507 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9508 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309509 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9510 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309511 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9512 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309513 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9514 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309515 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9516 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309517 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9518 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309519 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9520 msm_routing_put_audio_mixer),
9521};
9522
9523static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309524 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9525 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309526 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9527 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309528 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9529 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309530 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9531 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309532 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9533 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309534 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9535 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309536 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9537 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309538 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9539 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309540 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9541 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309542 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9543 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309544 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9545 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309546 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9547 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309548 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9549 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309550 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9551 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309552 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9553 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309554 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9555 msm_routing_put_audio_mixer),
Meng Wangbe8194e2018-04-25 10:40:01 +08009556 SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9557 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
9559 SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9560 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309562};
9563
9564static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309565 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9566 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309567 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9568 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309569 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9570 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309571 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9572 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309573 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9574 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309575 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9576 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309577 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309579 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309581 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309583 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309585 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9586 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309587 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9588 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309589 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9590 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309591 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9592 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309593 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9594 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309595 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9596 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309597 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9598 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309599 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9600 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309601 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9602 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309603 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9604 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309605 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9606 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309607 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9608 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309609 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9610 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309611 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9612 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309613 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9614 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309615 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9616 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309617 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9618 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309619 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9620 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309621 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309625 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309629 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309633 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309637 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309641 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309645 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309649 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309653 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309657 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309661 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309665};
9666
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309667static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309668 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9669 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309670 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9671 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309672 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9673 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309674 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9675 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309676 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9677 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309678 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9679 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309680 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9681 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309682 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9683 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309684 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9685 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309686 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9687 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309688 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9689 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309690 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9691 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309692 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9693 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309694 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9695 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309696 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9697 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309698 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9699 msm_routing_put_audio_mixer),
Meng Wangbe8194e2018-04-25 10:40:01 +08009700 SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9701 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9702 msm_routing_put_audio_mixer),
9703 SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9704 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9705 msm_routing_put_audio_mixer),
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309706};
9707
9708static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309709 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309713 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309715 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309717 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309719 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309721 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309723 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309725 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309727 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309729 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309731 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309733 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309735 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309737 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309741 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Meng Wangbe8194e2018-04-25 10:40:01 +08009743 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309745 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Meng Wangbe8194e2018-04-25 10:40:01 +08009747 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309749};
9750
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309751static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309752 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9753 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309754 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9755 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309756 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309758 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9759 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309760 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309762 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9763 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309764 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309766 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9767 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309768 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9771 msm_routing_put_voice_mixer),
9772};
9773
9774static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309775 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9776 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309777 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9778 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309779 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9780 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309781 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9782 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309783 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9784 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309785 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9786 msm_routing_put_voice_mixer),
9787};
9788
9789static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309790 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9791 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309792 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9793 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309794 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9795 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309796 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9797 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309798 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9799 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309800 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9801 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309802 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9803 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309804 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9805 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309806 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9807 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309808 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9809 msm_routing_put_voice_mixer),
9810};
9811
9812static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309813 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9814 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309815 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9816 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309817 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9818 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309819 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9820 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309821 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9822 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309823 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9824 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309825 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9826 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309827 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9828 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309829 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9830 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309831 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9832 msm_routing_put_voice_mixer),
9833};
9834
9835static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309836 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9837 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309838 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9839 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309840 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9841 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309842 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9843 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309844 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9845 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309846 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9847 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309848 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9849 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309850 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9851 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309852 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9853 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309854 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9855 msm_routing_put_voice_mixer),
9856};
9857
9858static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309859 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309861 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9862 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309863 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9866 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309867 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309869 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9870 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309871 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309873 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9874 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309875 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309877 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9878 msm_routing_put_voice_mixer),
9879};
9880
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009881static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309882 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9883MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009884 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9885 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309886 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9887MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009888 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9889 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309890 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9891MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009892 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9893 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309894 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9895MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009896 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9897 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309898 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9899MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009900 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9901 msm_routing_put_voice_mixer),
9902};
9903
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309904static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309905 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9906 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309907 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9908 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309909 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9910 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309911 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9912 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309913 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9914 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309915 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9916 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309917 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309919 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9920 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309921 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309923 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9924 msm_routing_put_voice_mixer),
9925};
9926
9927static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309928 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9929 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309930 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9931 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309932 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9933 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309934 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9935 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309936 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9937 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309938 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9939 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309940 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9941 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309942 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9943 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309944 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309946 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9947 msm_routing_put_voice_mixer),
9948};
9949
9950static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309951 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9952MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309953 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9954 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309955 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9956MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309957 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9958 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309959 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9960MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309961 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9962 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309963 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9964MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309965 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9966 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309967 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9968MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309969 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9970 msm_routing_put_voice_mixer),
9971};
9972
9973static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309974 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9975MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309976 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9977 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309978 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9979MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309980 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9981 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309982 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9983MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309984 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9985 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309986 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9987MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309988 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9989 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309990 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9991MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309992 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9993 msm_routing_put_voice_mixer),
9994};
9995
9996static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309997 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309999 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10000 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010001 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010003 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10004 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010005 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10008 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010009 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10012 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010013 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010015 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10016 msm_routing_put_voice_mixer),
10017};
10018
10019static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010020 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010022 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10023 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010024 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010026 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10027 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010028 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10029 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010030 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10031 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010032 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10033 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010034 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10035 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010036 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10037 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010038 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10039 msm_routing_put_voice_mixer),
10040};
10041
10042static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010043 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10044 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010045 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10046 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010047 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10048 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010049 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10050 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010051 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10052 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010053 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10054 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010055 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10056 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010057 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10058 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010059 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10060 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010061 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10062 msm_routing_put_voice_mixer),
10063};
10064
10065static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010066 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10067 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010068 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10069 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010070 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10071 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010072 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10073 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010074 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10075 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010076 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10077 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010078 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10079 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010080 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10081 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010082 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10083 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010084 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10085 msm_routing_put_voice_mixer),
10086};
10087
10088static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010089 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10090 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010091 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10092 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010093 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10094 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010095 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10096 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010097 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10098 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010099 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10100 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010101 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10102 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010103 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10104 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010105 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10106 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010107 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10108 msm_routing_put_voice_mixer),
10109};
10110
10111static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010112 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010114 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10115 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010116 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010118 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10119 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010120 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010122 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10123 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010124 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010126 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10127 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010128 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010130 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10131 msm_routing_put_voice_mixer),
10132};
10133
10134static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010135 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10136MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010137 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10138 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010139 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10140MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010141 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10142 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010143 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10144MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010145 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10146 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010147 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10148MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10150 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010151 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10152MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10154 msm_routing_put_voice_mixer),
10155};
10156
10157static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010158 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10159MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010160 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10161 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010162 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10163MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010164 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10165 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010166 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10167MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010168 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10169 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010170 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10171MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010172 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10173 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010174 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10175MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010176 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10177 msm_routing_put_voice_mixer),
10178};
10179
10180static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010181 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10182MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010183 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10184 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010185 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10186MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010187 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10188 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010189 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10190MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010191 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10192 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010193 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10194MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010195 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10196 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010197 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10198MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010199 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10200 msm_routing_put_voice_mixer),
10201};
10202
Rohit Kumara5077932017-09-10 22:05:05 +053010203static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010204 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10205MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010206 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10207 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010208 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10209MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010210 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10211 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010212 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10213MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010214 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10215 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010216 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10217MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010218 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10219 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010220 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10221MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010222 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10223 msm_routing_put_voice_mixer),
10224};
10225
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010226static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010227 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010229 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10230 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010231 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10232 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010233 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10234 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010235 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10236 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010237 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10238 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010239 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10240 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010241 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10242 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010243 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10244 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010245 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10246 msm_routing_put_voice_mixer),
10247};
10248
Raja Mallik321d5712018-05-04 17:22:11 +053010249static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
10250 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10251 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10252 msm_routing_put_voice_mixer),
10253 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10254 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10255 msm_routing_put_voice_stub_mixer),
10256 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10257 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10258 msm_routing_put_voice_stub_mixer),
10259 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10260 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10261 msm_routing_put_voice_mixer),
10262 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10263 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10264 msm_routing_put_voice_mixer),
10265 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10266 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10267 msm_routing_put_voice_mixer),
10268 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10269 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10270 msm_routing_put_voice_mixer),
10271 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10272 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10273 msm_routing_put_voice_mixer),
10274};
10275
10276static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
10277 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10278 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10279 msm_routing_put_voice_mixer),
10280 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10281 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10282 msm_routing_put_voice_stub_mixer),
10283 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10284 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10285 msm_routing_put_voice_stub_mixer),
10286 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10287 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10288 msm_routing_put_voice_mixer),
10289 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10290 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10291 msm_routing_put_voice_mixer),
10292 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10293 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10294 msm_routing_put_voice_mixer),
10295 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10296 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10297 msm_routing_put_voice_mixer),
10298 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10299 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10300 msm_routing_put_voice_mixer),
10301};
10302
10303static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
10304 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10305 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10306 msm_routing_put_voice_mixer),
10307 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10308 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10309 msm_routing_put_voice_stub_mixer),
10310 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10311 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10312 msm_routing_put_voice_stub_mixer),
10313 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10314 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10315 msm_routing_put_voice_mixer),
10316 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10317 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10318 msm_routing_put_voice_mixer),
10319 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10320 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10321 msm_routing_put_voice_mixer),
10322 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10323 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10324 msm_routing_put_voice_mixer),
10325 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10326 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10327 msm_routing_put_voice_mixer),
10328};
10329
10330static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
10331 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10332 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10333 msm_routing_put_voice_mixer),
10334 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10335 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10336 msm_routing_put_voice_stub_mixer),
10337 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10338 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10339 msm_routing_put_voice_stub_mixer),
10340 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10341 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10342 msm_routing_put_voice_mixer),
10343 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10344 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10345 msm_routing_put_voice_mixer),
10346 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10347 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10348 msm_routing_put_voice_mixer),
10349 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10350 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10351 msm_routing_put_voice_mixer),
10352 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10353 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10354 msm_routing_put_voice_mixer),
10355};
10356
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010357static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010358 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10359MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010360 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10361 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010362 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10363MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010364 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10365 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010366 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10367MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010368 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10369 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010370 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10371MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010372 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10373 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010374 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10375MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010376 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10377 msm_routing_put_voice_mixer),
10378};
10379
10380static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010381 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010383 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10384 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010385 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010387 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10388 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010389 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10390 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010391 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10392 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010393 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10394 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010395 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10396 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010397 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10398 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010399 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10400 msm_routing_put_voice_mixer),
10401};
10402
10403static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010404 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10405 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010406 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10407 msm_routing_put_voice_mixer),
10408};
10409
10410static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010411 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010413 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10414 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010415 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010417 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10418 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010419};
10420
10421static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010422 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10423 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010424 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10425 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010426 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010428 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10429 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010430};
10431
10432static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010433 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10434 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010435 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10436 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010437 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10438 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010439 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10440 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010441};
10442
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010443static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010444 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010446 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10447 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010448 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010450 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10451 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010452 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010453 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10454 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010455 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010456 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10457 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010458 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010459 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10460 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010461 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010462 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10463 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010464 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10466 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010467 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010468 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10469 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010470 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010471 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053010474 MSM_BACKEND_DAI_QUIN_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("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10478 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010479 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010480 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10481 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010482 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010483 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10484 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010485 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010486 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10487 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010488 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010489 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10490 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010491 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
10492 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010493 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10494 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010495 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010496 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
10497 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010498 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Raja Mallik321d5712018-05-04 17:22:11 +053010499 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
10500 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010501 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010502 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10503 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010504 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010505 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10506 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010507};
10508
10509static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010510 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010512 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10513 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010514 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010516 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10517 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010518 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010519 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10520 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010521 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010522 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10523 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010524 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010525 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10526 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010527 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010528 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10529 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010530 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010531 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10532 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010533 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010534 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10535 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010536 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010537 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053010540 MSM_BACKEND_DAI_QUIN_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("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010543 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10544 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010545 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010546 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
10547 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010548 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
Raja Mallik321d5712018-05-04 17:22:11 +053010549 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
10550 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010551 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010552 MSM_BACKEND_DAI_INT3_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("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010555 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10556 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010557 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010558 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10559 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010560 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010561 MSM_BACKEND_DAI_USB_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("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010564 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10565 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010566 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010567 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
10568 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010569};
10570
10571static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010572 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
10573 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010574 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10575 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010576 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010578 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10579 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010580 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010582 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10583 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010584 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010586 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10587 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010588 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010590 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10591 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010592 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010594 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10595 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010596 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010598 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10599 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010600 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010602 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10603 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010604 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010606 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10607 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010608 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010610 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10611 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010612 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010614 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10615 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010616 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010618 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10619 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010620 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010622 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10623 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010624 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010626 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10627 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010628 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010630 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10631 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010632 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10635 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010636 SOC_DOUBLE_EXT("PRI_TDM_TX_3_Voip", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Bala Kishore Pati38de3862018-06-15 17:38:40 +053010638 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10639 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010640};
10641
10642static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010643 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
10644 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010645 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10646 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010647 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10648 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010649 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10650 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010651 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010653 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10654 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010655 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
10656 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010657 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10658 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010659 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010661 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10662 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010663 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10664 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010665 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10666 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010667 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010669 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10670 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010671 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010673 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10674 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010675 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010677 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10678 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010679 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010681 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10682 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010683 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010685 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10686 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010687 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10690 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010691 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10694 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010695 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010697 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10698 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010699 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10702 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010703 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10706 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010707 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010709 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10710 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010711 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10714 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010715 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10718 msm_routing_put_voice_stub_mixer),
10719};
10720
10721static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010722 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
10723 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010724 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10725 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010726 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10727 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010728 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10729 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010730 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
10731 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010732 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10733 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010734 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10735 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010736 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10737 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010738 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10739 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010740 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10741 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010742 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10743 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010744 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10745 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010746 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10747 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010748 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10749 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010750 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10751 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010752 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10753 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010754 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10755 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010756 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10757 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010758 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010760 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10761 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010762 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010764 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10765 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010766 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010768 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10769 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010770 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010772 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10773 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010774 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010776 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10777 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010778 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010780 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10781 msm_routing_put_voice_stub_mixer),
10782};
10783
10784static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010785 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
10786 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010787 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10788 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010789 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10790 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010791 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10792 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010793 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
10794 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010795 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10796 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010797 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10798 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010799 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10800 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010801 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10802 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010803 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10804 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010805 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10806 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010807 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10808 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010809 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10810 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010811 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10812 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010813 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10814 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010815 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10816 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010817 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10818 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010819 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10820 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010821 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
10822 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010823 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10824 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010825 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10826 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010827 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10828 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010829 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10830 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010831 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10832 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010833 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10834 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010835 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10836 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010837 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10838 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010839 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10840 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010841 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10842 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010843 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10844 msm_routing_put_voice_stub_mixer),
10845};
10846
10847static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010848 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
10849 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010850 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10851 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010852 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
10853 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010854 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10855 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010856 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_INT_BT_SCO_TX,
10858 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010859 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010860 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
10861 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010862 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10863 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010864 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10865 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010866 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10867 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010868 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10869 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010870 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10871 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010872 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10873 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010874 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10875 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010876 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010878 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10879 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010880 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010882 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10883 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010884 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010886 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10887 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010888 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010890 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10891 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010892 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010894 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10895 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010896 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010898 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10899 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010900 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010902 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10903 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010904 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
10905 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010906 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10907 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010908 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
10909 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010910 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10911 msm_routing_put_voice_mixer),
10912};
10913
10914static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010915 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010917 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10918 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010919 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010921 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10922 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010923 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10924 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010925 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10926 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010927 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010929 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10930 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010931 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010933 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10934 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010935 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010937 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10938 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010939 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010941 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
10942 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010943 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10944 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010945 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
10946 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010947 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010949 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
10950 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010951 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010953 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
10954 msm_routing_put_port_mixer),
10955};
10956
10957static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010958 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10959 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010960 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10961 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010962 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10963 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010964 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10965 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010966 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010968 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10969 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010970 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10971 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010972 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10973 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010974 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10975 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010976 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10977 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010978 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010980 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10981 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010982 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10983 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010984 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
10985 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010986 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10987 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010988 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
10989 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010990 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10991 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010992 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
10993 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010994 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010996 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
10997 msm_routing_put_port_mixer),
10998};
10999
11000static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011001 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11002 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011003 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11004 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011005 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11006 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011007 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11008 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011009 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11010 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011011 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11012 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011013 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11014 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011015 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11016 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011017 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11018 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011019 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11020 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011021 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11022 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011023 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11024 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011025 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11026 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011027 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11028 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011029 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11030 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011031 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11032 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011033 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11034 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011035 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11036 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011037 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11038 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011039 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11040 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011041 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11042 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011043 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11044 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011045 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11046 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011047 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11048 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011049 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11050 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011051 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11052 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011053 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11054 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011055 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11056 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011057 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11058 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011059 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11060 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011061 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11062 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011063 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11064 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011065 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11066 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011067 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11068 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011069 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
11070 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011071 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11072 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011073 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
11074 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011075 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11076 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011077 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
11078 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011079 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11080 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011081 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
11082 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011083 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11084 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011085 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
11086 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011087 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11088 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011089};
11090
11091static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011092 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11093 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011094 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11095 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011096 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11097 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011098 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11099 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011100 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11101 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011102 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11103 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011104 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11105 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011106 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11107 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011108 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11109 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011110 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
11111 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011112 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11113 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080011114 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11115 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011116};
11117
11118static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011119 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011121 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11122 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011123 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011125 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11126 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011127 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011129 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11130 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011131 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080011133 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11134 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011135};
11136
11137static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011138 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11139 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011140 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11141 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011142 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11143 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011144 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11145 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011146 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011148 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11149 msm_routing_put_port_mixer),
11150};
11151
11152static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011153 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11154 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011155 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11156 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011157 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11158 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011159 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11160 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011161 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011163 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11164 msm_routing_put_port_mixer),
11165};
11166
Rohit Kumara5077932017-09-10 22:05:05 +053011167static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011168 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11169 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011170 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11171 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011172 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11173 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011174 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11175 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011176 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11177 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011178 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11179 msm_routing_put_port_mixer),
11180};
11181
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011182static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011183 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11184 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011185 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11186 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011187 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11188 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011189 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
11190 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011191 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11192 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011193 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11194 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011195 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11196 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011197 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11198 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011199 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11200 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011201 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11202 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011203 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11204 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011205 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11206 msm_routing_put_port_mixer),
11207};
11208
11209static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011210 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011212 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
11213 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011214 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011216 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11217 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011218 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011220 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
11221 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011222 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011224 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
11225 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011226 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011228 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
11229 msm_routing_put_port_mixer),
11230};
11231
11232static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011233 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11234 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011235 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11236 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011237 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11238 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011239 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11240 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011241 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11242 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011243 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11244 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011245 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11246 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011247 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11248 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011249 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11250 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011251 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11252 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011253 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11254 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011255 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11256 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011257 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011259 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11260 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011261 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11262 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011263 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11264 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011265 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11266 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011267 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11268 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011269 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11270 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011271 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11272 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011273 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011275 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11276 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011277 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011279 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11280 msm_routing_put_port_mixer),
11281};
11282
11283static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011284 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11285 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011286 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11287 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011288 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11289 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011290 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11291 msm_routing_put_port_mixer),
11292};
11293
11294static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011295 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011297 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11298 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011299 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011301 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11302 msm_routing_put_port_mixer),
11303};
11304
11305
11306static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011307 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011309 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11310 msm_routing_put_port_mixer),
11311};
11312
11313static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011314 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11315 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011316 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11317 msm_routing_put_port_mixer),
11318};
11319
11320static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011321 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11322 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011323 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11324 msm_routing_put_port_mixer),
11325};
11326
11327static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011328 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11329 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011330 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11331 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011332 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011334 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11335 msm_routing_put_port_mixer),
11336};
11337
11338static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011339 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011341 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11342 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011343 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011345 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11346 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011347 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011349 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11350 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011351 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011353 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11354 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011355 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011357 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11358 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011359 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011361 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11362 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011363 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11364 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011365 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11366 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011367 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011369 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11370 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011371 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011373 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11374 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011375 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080011377 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11378 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011379};
11380
11381static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011382 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11383 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011384 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
11385 msm_routing_put_port_mixer),
11386};
11387
11388static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011389 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11390 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011391 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11392 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011393 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11394 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011395 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11396 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011397 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11398 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011399 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11400 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011401 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11402 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011403 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11404 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011405 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11406 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011407 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11408 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011409 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11410 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011411 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11412 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011413 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11414 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011415 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11416 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011417 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11418 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011419 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11420 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011421 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11422 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011423 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11424 msm_routing_put_port_mixer),
11425};
11426
Rohit Kumara5077932017-09-10 22:05:05 +053011427static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011428 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11429 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011430 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11431 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011432 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011434 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11435 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011436 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11437 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011438 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11439 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011440 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011442 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11443 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011444 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011446 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11447 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011448 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011450 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11451 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011452 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11453 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011454 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11455 msm_routing_put_port_mixer),
11456};
11457
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011458static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011459 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11460 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011461 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11462 msm_routing_get_port_mixer,
11463 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011464 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011466 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11467 msm_routing_get_port_mixer,
11468 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011469 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11470 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011471 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11472 msm_routing_get_port_mixer,
11473 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011474 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11475 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011476 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11477 msm_routing_get_port_mixer,
11478 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011479 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11480 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011481 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11482 msm_routing_get_port_mixer,
11483 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011484 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11485 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011486 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11487 msm_routing_get_port_mixer,
11488 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011489 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011491 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11492 msm_routing_get_port_mixer,
11493 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011494 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011496 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11497 msm_routing_get_port_mixer,
11498 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011499 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11500 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011501 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11502 msm_routing_get_port_mixer,
11503 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011504 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11505 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011506 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11507 msm_routing_get_port_mixer,
11508 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011509 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011511 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11512 msm_routing_get_port_mixer,
11513 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011514 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011516 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11517 msm_routing_get_port_mixer,
11518 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011519 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11520 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011521 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11522 msm_routing_get_port_mixer,
11523 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011524 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11525 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011526 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11527 msm_routing_get_port_mixer,
11528 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011529 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011531 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11532 msm_routing_get_port_mixer,
11533 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011534 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11535 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011536 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11537 msm_routing_get_port_mixer,
11538 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011539 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11540 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011541 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11542 msm_routing_get_port_mixer,
11543 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011544 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11545 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011546 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11547 msm_routing_get_port_mixer,
11548 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011549 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011551 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11552 msm_routing_get_port_mixer,
11553 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011554 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11555 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011556 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11557 msm_routing_get_port_mixer,
11558 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011559};
11560
11561static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011562 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011564 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11565 msm_routing_get_port_mixer,
11566 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011567 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11568 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011569 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11570 msm_routing_get_port_mixer,
11571 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011572 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11573 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011574 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11575 msm_routing_get_port_mixer,
11576 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011577 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011579 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11580 msm_routing_get_port_mixer,
11581 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011582 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11583 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011584 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11585 msm_routing_get_port_mixer,
11586 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011587 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11588 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011589 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11590 msm_routing_get_port_mixer,
11591 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011592 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11593 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011594 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11595 msm_routing_get_port_mixer,
11596 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011597 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11598 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011599 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11600 msm_routing_get_port_mixer,
11601 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011602 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11603 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011604 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11605 msm_routing_get_port_mixer,
11606 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011607 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11608 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011609 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11610 msm_routing_get_port_mixer,
11611 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011612 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11613 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011614 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11615 msm_routing_get_port_mixer,
11616 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011617 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11618 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011619 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11620 msm_routing_get_port_mixer,
11621 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011622 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11623 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011624 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11625 msm_routing_get_port_mixer,
11626 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011627 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11628 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011629 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11630 msm_routing_get_port_mixer,
11631 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011632 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11633 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011634 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11635 msm_routing_get_port_mixer,
11636 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011637 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11638 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011639 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11640 msm_routing_get_port_mixer,
11641 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011642 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011644 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11645 msm_routing_get_port_mixer,
11646 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011647 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11648 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011649 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11650 msm_routing_get_port_mixer,
11651 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011652 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011654 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11655 msm_routing_get_port_mixer,
11656 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011657 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11658 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011659 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11660 msm_routing_get_port_mixer,
11661 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011662};
11663
11664static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011665 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11666 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011667 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11668 msm_routing_get_port_mixer,
11669 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011670 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011672 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11673 msm_routing_get_port_mixer,
11674 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011675 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11676 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011677 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11678 msm_routing_get_port_mixer,
11679 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011680 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11681 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011682 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11683 msm_routing_get_port_mixer,
11684 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011685 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11686 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011687 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11688 msm_routing_get_port_mixer,
11689 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011690 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011692 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11693 msm_routing_get_port_mixer,
11694 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011695 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11696 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011697 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11698 msm_routing_get_port_mixer,
11699 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011700 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11701 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011702 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11703 msm_routing_get_port_mixer,
11704 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011705 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11706 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011707 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11708 msm_routing_get_port_mixer,
11709 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011710 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011712 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11713 msm_routing_get_port_mixer,
11714 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011715 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11716 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011717 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11718 msm_routing_get_port_mixer,
11719 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011720 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11721 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011722 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11723 msm_routing_get_port_mixer,
11724 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011725 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11726 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011727 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11728 msm_routing_get_port_mixer,
11729 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011730 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11731 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011732 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11733 msm_routing_get_port_mixer,
11734 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011735 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011737 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11738 msm_routing_get_port_mixer,
11739 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011740 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11741 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011742 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11743 msm_routing_get_port_mixer,
11744 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011745 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011747 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11748 msm_routing_get_port_mixer,
11749 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011750 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011752 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11753 msm_routing_get_port_mixer,
11754 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011755 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11756 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011757 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11758 msm_routing_get_port_mixer,
11759 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011760 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011762 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11763 msm_routing_get_port_mixer,
11764 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011765};
11766
11767static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011768 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11769 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011770 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11771 msm_routing_get_port_mixer,
11772 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011773 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011775 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11776 msm_routing_get_port_mixer,
11777 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011778 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011780 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11781 msm_routing_get_port_mixer,
11782 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011783 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11784 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011785 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11786 msm_routing_get_port_mixer,
11787 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011788 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011790 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11791 msm_routing_get_port_mixer,
11792 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011793 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11794 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011795 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11796 msm_routing_get_port_mixer,
11797 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011798 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011800 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11801 msm_routing_get_port_mixer,
11802 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011803 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11804 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011805 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11806 msm_routing_get_port_mixer,
11807 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011808 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11809 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011810 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11811 msm_routing_get_port_mixer,
11812 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011813 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011815 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11816 msm_routing_get_port_mixer,
11817 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011818 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11819 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011820 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11821 msm_routing_get_port_mixer,
11822 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011823 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11824 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011825 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11826 msm_routing_get_port_mixer,
11827 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011828 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11829 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011830 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11831 msm_routing_get_port_mixer,
11832 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011833 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011835 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11836 msm_routing_get_port_mixer,
11837 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011838 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11839 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011840 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11841 msm_routing_get_port_mixer,
11842 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011843 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11844 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011845 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11846 msm_routing_get_port_mixer,
11847 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011848 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11849 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011850 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11851 msm_routing_get_port_mixer,
11852 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011853 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011855 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11856 msm_routing_get_port_mixer,
11857 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011858 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11859 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011860 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11861 msm_routing_get_port_mixer,
11862 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011863 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011865 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11866 msm_routing_get_port_mixer,
11867 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011868};
11869
11870static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011871 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11872 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011873 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11874 msm_routing_get_port_mixer,
11875 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011876 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11877 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011878 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11879 msm_routing_get_port_mixer,
11880 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011881 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011883 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11884 msm_routing_get_port_mixer,
11885 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011886 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11887 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011888 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11889 msm_routing_get_port_mixer,
11890 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011891 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11892 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011893 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11894 msm_routing_get_port_mixer,
11895 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011896 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011898 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11899 msm_routing_get_port_mixer,
11900 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011901 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11902 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011903 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11904 msm_routing_get_port_mixer,
11905 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011906 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11907 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011908 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11909 msm_routing_get_port_mixer,
11910 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011911 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011913 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
11914 msm_routing_get_port_mixer,
11915 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011916 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011918 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
11919 msm_routing_get_port_mixer,
11920 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011921 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11922 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011923 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
11924 msm_routing_get_port_mixer,
11925 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011926 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11927 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011928 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
11929 msm_routing_get_port_mixer,
11930 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011931 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11932 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011933 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11934 msm_routing_get_port_mixer,
11935 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011936 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011938 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11939 msm_routing_get_port_mixer,
11940 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011941 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11942 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011943 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11944 msm_routing_get_port_mixer,
11945 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011946 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11947 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011948 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11949 msm_routing_get_port_mixer,
11950 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011951 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011953 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11954 msm_routing_get_port_mixer,
11955 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011956 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011958 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11959 msm_routing_get_port_mixer,
11960 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011961 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11962 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011963 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11964 msm_routing_get_port_mixer,
11965 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011966 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11967 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011968 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11969 msm_routing_get_port_mixer,
11970 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011971};
11972
11973static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011974 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11975 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011976 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11977 msm_routing_get_port_mixer,
11978 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011979 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011981 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11982 msm_routing_get_port_mixer,
11983 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011984 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011986 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11987 msm_routing_get_port_mixer,
11988 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011989 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11990 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011991 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11992 msm_routing_get_port_mixer,
11993 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011994 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11995 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011996 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11997 msm_routing_get_port_mixer,
11998 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011999 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012001 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12002 msm_routing_get_port_mixer,
12003 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012004 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12005 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012006 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12007 msm_routing_get_port_mixer,
12008 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012009 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12010 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012011 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12012 msm_routing_get_port_mixer,
12013 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012014 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12015 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012016 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12017 msm_routing_get_port_mixer,
12018 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012019 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012021 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12022 msm_routing_get_port_mixer,
12023 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012024 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12025 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012026 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12027 msm_routing_get_port_mixer,
12028 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012029 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12030 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012031 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12032 msm_routing_get_port_mixer,
12033 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012034 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12035 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012036 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12037 msm_routing_get_port_mixer,
12038 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012039 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12040 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012041 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12042 msm_routing_get_port_mixer,
12043 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012044 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12045 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012046 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12047 msm_routing_get_port_mixer,
12048 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012049 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012051 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12052 msm_routing_get_port_mixer,
12053 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012054 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12055 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012056 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12057 msm_routing_get_port_mixer,
12058 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012059 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12060 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012061 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12062 msm_routing_get_port_mixer,
12063 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012064 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012066 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12067 msm_routing_get_port_mixer,
12068 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012069 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012071 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12072 msm_routing_get_port_mixer,
12073 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012074};
12075
12076static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012077 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012079 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12080 msm_routing_get_port_mixer,
12081 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012082 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012084 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12085 msm_routing_get_port_mixer,
12086 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012087 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12088 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012089 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12090 msm_routing_get_port_mixer,
12091 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012092 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012094 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12095 msm_routing_get_port_mixer,
12096 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012097 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012099 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12100 msm_routing_get_port_mixer,
12101 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012102 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012104 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12105 msm_routing_get_port_mixer,
12106 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012107 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12108 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012109 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12110 msm_routing_get_port_mixer,
12111 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012112 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12113 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012114 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12115 msm_routing_get_port_mixer,
12116 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012117 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12118 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012119 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12120 msm_routing_get_port_mixer,
12121 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012122 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012124 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12125 msm_routing_get_port_mixer,
12126 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012127 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12128 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012129 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12130 msm_routing_get_port_mixer,
12131 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012132 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012134 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12135 msm_routing_get_port_mixer,
12136 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012137 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012139 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12140 msm_routing_get_port_mixer,
12141 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012142 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12143 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012144 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12145 msm_routing_get_port_mixer,
12146 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012147 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12148 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012149 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12150 msm_routing_get_port_mixer,
12151 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012152 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12153 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012154 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12155 msm_routing_get_port_mixer,
12156 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012157 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012159 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12160 msm_routing_get_port_mixer,
12161 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012162 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012164 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12165 msm_routing_get_port_mixer,
12166 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012167 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12168 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012169 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12170 msm_routing_get_port_mixer,
12171 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012172 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12173 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012174 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12175 msm_routing_get_port_mixer,
12176 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012177};
12178
12179static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012180 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12181 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012182 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12183 msm_routing_get_port_mixer,
12184 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012185 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012187 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12188 msm_routing_get_port_mixer,
12189 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012190 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12191 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012192 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12193 msm_routing_get_port_mixer,
12194 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012195 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012197 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12198 msm_routing_get_port_mixer,
12199 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012200 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12201 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012202 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12203 msm_routing_get_port_mixer,
12204 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012205 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12206 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012207 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12208 msm_routing_get_port_mixer,
12209 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012210 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12211 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012212 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12213 msm_routing_get_port_mixer,
12214 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012215 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12216 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012217 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12218 msm_routing_get_port_mixer,
12219 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012220 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12221 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012222 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12223 msm_routing_get_port_mixer,
12224 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012225 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012227 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12228 msm_routing_get_port_mixer,
12229 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012230 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12231 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012232 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12233 msm_routing_get_port_mixer,
12234 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012235 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12236 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012237 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12238 msm_routing_get_port_mixer,
12239 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012240 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12241 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012242 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12243 msm_routing_get_port_mixer,
12244 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012245 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12246 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012247 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12248 msm_routing_get_port_mixer,
12249 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012250 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12251 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012252 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12253 msm_routing_get_port_mixer,
12254 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012255 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12256 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012257 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12258 msm_routing_get_port_mixer,
12259 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012260 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12261 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012262 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12263 msm_routing_get_port_mixer,
12264 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012265 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12266 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012267 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12268 msm_routing_get_port_mixer,
12269 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012270 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12271 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012272 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12273 msm_routing_get_port_mixer,
12274 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012275 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012277 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12278 msm_routing_get_port_mixer,
12279 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012280};
12281
12282static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012283 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12286 msm_routing_get_port_mixer,
12287 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012288 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12289 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012290 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12291 msm_routing_get_port_mixer,
12292 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012293 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12294 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012295 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12296 msm_routing_get_port_mixer,
12297 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012298 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12299 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012300 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12301 msm_routing_get_port_mixer,
12302 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012303 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12304 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012305 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12306 msm_routing_get_port_mixer,
12307 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012308 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012310 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12311 msm_routing_get_port_mixer,
12312 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012313 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012315 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12316 msm_routing_get_port_mixer,
12317 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012318 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12319 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012320 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12321 msm_routing_get_port_mixer,
12322 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012323 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12324 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012325 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12326 msm_routing_get_port_mixer,
12327 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012328 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12329 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012330 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12331 msm_routing_get_port_mixer,
12332 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012333 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012335 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12336 msm_routing_get_port_mixer,
12337 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012338 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12339 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012340 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12341 msm_routing_get_port_mixer,
12342 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012343 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12344 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012345 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12346 msm_routing_get_port_mixer,
12347 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012348 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12349 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012350 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12351 msm_routing_get_port_mixer,
12352 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012353 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012355 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12356 msm_routing_get_port_mixer,
12357 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012358 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12359 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012360 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12361 msm_routing_get_port_mixer,
12362 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012363 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012365 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12366 msm_routing_get_port_mixer,
12367 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012368 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12369 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012370 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12371 msm_routing_get_port_mixer,
12372 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012373 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012375 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12376 msm_routing_get_port_mixer,
12377 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012378 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012380 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12381 msm_routing_get_port_mixer,
12382 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012383};
12384
12385static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012386 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012388 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12389 msm_routing_get_port_mixer,
12390 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012391 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12392 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012393 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12394 msm_routing_get_port_mixer,
12395 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012396 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12397 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012398 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12399 msm_routing_get_port_mixer,
12400 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012401 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012403 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12404 msm_routing_get_port_mixer,
12405 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012406 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012408 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12409 msm_routing_get_port_mixer,
12410 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012411 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12412 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012413 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12414 msm_routing_get_port_mixer,
12415 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012416 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012418 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12419 msm_routing_get_port_mixer,
12420 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012421 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12422 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012423 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12424 msm_routing_get_port_mixer,
12425 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012426 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12427 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012428 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12429 msm_routing_get_port_mixer,
12430 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012431 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12432 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012433 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12434 msm_routing_get_port_mixer,
12435 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012436 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12437 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012438 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12439 msm_routing_get_port_mixer,
12440 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012441 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12442 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012443 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12444 msm_routing_get_port_mixer,
12445 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012446 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12447 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012448 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12449 msm_routing_get_port_mixer,
12450 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012451 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012453 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12454 msm_routing_get_port_mixer,
12455 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012456 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12457 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012458 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12459 msm_routing_get_port_mixer,
12460 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012461 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012463 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12464 msm_routing_get_port_mixer,
12465 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012466 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012468 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12469 msm_routing_get_port_mixer,
12470 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012471 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12472 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012473 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12474 msm_routing_get_port_mixer,
12475 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012476 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012478 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12479 msm_routing_get_port_mixer,
12480 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012481 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12482 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012483 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12484 msm_routing_get_port_mixer,
12485 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012486};
12487
12488static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012489 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012491 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12492 msm_routing_get_port_mixer,
12493 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012494 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12495 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012496 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12497 msm_routing_get_port_mixer,
12498 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012499 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12500 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012501 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12502 msm_routing_get_port_mixer,
12503 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012504 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012506 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12507 msm_routing_get_port_mixer,
12508 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012509 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12510 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012511 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12512 msm_routing_get_port_mixer,
12513 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012514 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12515 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012516 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12517 msm_routing_get_port_mixer,
12518 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012519 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12520 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012521 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12522 msm_routing_get_port_mixer,
12523 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012524 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012526 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12527 msm_routing_get_port_mixer,
12528 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012529 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12530 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012531 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12532 msm_routing_get_port_mixer,
12533 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012534 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12535 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012536 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12537 msm_routing_get_port_mixer,
12538 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012539 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12540 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012541 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12542 msm_routing_get_port_mixer,
12543 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012544 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012546 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12547 msm_routing_get_port_mixer,
12548 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012549 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12550 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012551 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12552 msm_routing_get_port_mixer,
12553 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012554 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12555 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012556 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12557 msm_routing_get_port_mixer,
12558 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012559 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12560 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012561 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12562 msm_routing_get_port_mixer,
12563 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012564 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012566 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12567 msm_routing_get_port_mixer,
12568 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012569 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12570 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012571 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12572 msm_routing_get_port_mixer,
12573 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012574 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12575 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012576 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12577 msm_routing_get_port_mixer,
12578 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012579 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12580 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012581 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12582 msm_routing_get_port_mixer,
12583 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012584 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012586 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12587 msm_routing_get_port_mixer,
12588 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012589};
12590
12591static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012592 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12593 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012594 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12595 msm_routing_get_port_mixer,
12596 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012597 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12598 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012599 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12600 msm_routing_get_port_mixer,
12601 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012602 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12603 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012604 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12605 msm_routing_get_port_mixer,
12606 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012607 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12608 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12610 msm_routing_get_port_mixer,
12611 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012612 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12615 msm_routing_get_port_mixer,
12616 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012617 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12618 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012619 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12620 msm_routing_get_port_mixer,
12621 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012622 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12623 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012624 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12625 msm_routing_get_port_mixer,
12626 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012627 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012629 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12630 msm_routing_get_port_mixer,
12631 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012632 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12633 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012634 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12635 msm_routing_get_port_mixer,
12636 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012637 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12638 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012639 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12640 msm_routing_get_port_mixer,
12641 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012642 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12643 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012644 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12645 msm_routing_get_port_mixer,
12646 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012647 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12648 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012649 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12650 msm_routing_get_port_mixer,
12651 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012652 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12653 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12655 msm_routing_get_port_mixer,
12656 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012657 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12658 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012659 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12660 msm_routing_get_port_mixer,
12661 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012662 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12663 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012664 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12665 msm_routing_get_port_mixer,
12666 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012667 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12668 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012669 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12670 msm_routing_get_port_mixer,
12671 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012672 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12673 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012674 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12675 msm_routing_get_port_mixer,
12676 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012677 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12678 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012679 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12680 msm_routing_get_port_mixer,
12681 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012682 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12683 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012684 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12685 msm_routing_get_port_mixer,
12686 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012687 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012689 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12690 msm_routing_get_port_mixer,
12691 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012692};
12693
12694static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012695 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012697 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12698 msm_routing_get_port_mixer,
12699 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012700 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12701 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012702 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12703 msm_routing_get_port_mixer,
12704 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012705 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12706 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012707 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
12708 msm_routing_get_port_mixer,
12709 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012710 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12711 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012712 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12713 msm_routing_get_port_mixer,
12714 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012715 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012717 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12718 msm_routing_get_port_mixer,
12719 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012720 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12721 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012722 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12723 msm_routing_get_port_mixer,
12724 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012725 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12726 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012727 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12728 msm_routing_get_port_mixer,
12729 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012730 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12731 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012732 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12733 msm_routing_get_port_mixer,
12734 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012735 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12736 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012737 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12738 msm_routing_get_port_mixer,
12739 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012740 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12741 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012742 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12743 msm_routing_get_port_mixer,
12744 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012745 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12746 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012747 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12748 msm_routing_get_port_mixer,
12749 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012750 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12751 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012752 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12753 msm_routing_get_port_mixer,
12754 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012755 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12756 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012757 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12758 msm_routing_get_port_mixer,
12759 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012760 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12761 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012762 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12763 msm_routing_get_port_mixer,
12764 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012765 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012767 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12768 msm_routing_get_port_mixer,
12769 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012770 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12771 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012772 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12773 msm_routing_get_port_mixer,
12774 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012775 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012777 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12778 msm_routing_get_port_mixer,
12779 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012780 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12781 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012782 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12783 msm_routing_get_port_mixer,
12784 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012785 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12786 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012787 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12788 msm_routing_get_port_mixer,
12789 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012790 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12791 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012792 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12793 msm_routing_get_port_mixer,
12794 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012795};
12796
12797static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012798 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012800 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12801 msm_routing_get_port_mixer,
12802 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012803 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012805 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12806 msm_routing_get_port_mixer,
12807 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012808 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12809 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012810 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
12811 msm_routing_get_port_mixer,
12812 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012813 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12816 msm_routing_get_port_mixer,
12817 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012818 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12819 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012820 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12821 msm_routing_get_port_mixer,
12822 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012823 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12824 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012825 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12826 msm_routing_get_port_mixer,
12827 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012828 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12829 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012830 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12831 msm_routing_get_port_mixer,
12832 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012833 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012835 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12836 msm_routing_get_port_mixer,
12837 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012838 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12839 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012840 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12841 msm_routing_get_port_mixer,
12842 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012843 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12844 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012845 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12846 msm_routing_get_port_mixer,
12847 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012848 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12849 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012850 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12851 msm_routing_get_port_mixer,
12852 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012853 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12854 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012855 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12856 msm_routing_get_port_mixer,
12857 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012858 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12859 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012860 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12861 msm_routing_get_port_mixer,
12862 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012863 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012865 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12866 msm_routing_get_port_mixer,
12867 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012868 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12869 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012870 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12871 msm_routing_get_port_mixer,
12872 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012873 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12874 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012875 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12876 msm_routing_get_port_mixer,
12877 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012878 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12879 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012880 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12881 msm_routing_get_port_mixer,
12882 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012883 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12884 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012885 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12886 msm_routing_get_port_mixer,
12887 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012888 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12889 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012890 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12891 msm_routing_get_port_mixer,
12892 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012893 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12894 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012895 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12896 msm_routing_get_port_mixer,
12897 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012898};
12899
12900static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012901 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012903 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12904 msm_routing_get_port_mixer,
12905 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012906 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012908 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12909 msm_routing_get_port_mixer,
12910 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012911 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12912 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012913 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
12914 msm_routing_get_port_mixer,
12915 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012916 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12917 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012918 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12919 msm_routing_get_port_mixer,
12920 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012921 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12922 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012923 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12924 msm_routing_get_port_mixer,
12925 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012926 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012928 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12929 msm_routing_get_port_mixer,
12930 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012931 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12932 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012933 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12934 msm_routing_get_port_mixer,
12935 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012936 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012938 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12939 msm_routing_get_port_mixer,
12940 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012941 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12942 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012943 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12944 msm_routing_get_port_mixer,
12945 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012946 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12947 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012948 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12949 msm_routing_get_port_mixer,
12950 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012951 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12952 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012953 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12954 msm_routing_get_port_mixer,
12955 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012956 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012958 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12959 msm_routing_get_port_mixer,
12960 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012961 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12962 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012963 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12964 msm_routing_get_port_mixer,
12965 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012966 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012968 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12969 msm_routing_get_port_mixer,
12970 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012971 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12972 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012973 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12974 msm_routing_get_port_mixer,
12975 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012976 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12979 msm_routing_get_port_mixer,
12980 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012981 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12982 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012983 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12984 msm_routing_get_port_mixer,
12985 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012986 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12987 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012988 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12989 msm_routing_get_port_mixer,
12990 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012991 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12992 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012993 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12994 msm_routing_get_port_mixer,
12995 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012996 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12997 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012998 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12999 msm_routing_get_port_mixer,
13000 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013001};
13002
13003static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013004 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013006 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13007 msm_routing_get_port_mixer,
13008 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013009 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13010 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013011 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13012 msm_routing_get_port_mixer,
13013 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013014 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13015 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13017 msm_routing_get_port_mixer,
13018 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013019 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13022 msm_routing_get_port_mixer,
13023 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013024 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13025 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013026 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13027 msm_routing_get_port_mixer,
13028 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013029 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13030 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013031 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13032 msm_routing_get_port_mixer,
13033 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013034 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013036 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13037 msm_routing_get_port_mixer,
13038 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013039 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13042 msm_routing_get_port_mixer,
13043 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013044 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13045 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013046 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13047 msm_routing_get_port_mixer,
13048 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013049 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13050 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013051 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13052 msm_routing_get_port_mixer,
13053 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013054 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013056 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13057 msm_routing_get_port_mixer,
13058 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013059 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13062 msm_routing_get_port_mixer,
13063 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013064 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13065 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013066 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13067 msm_routing_get_port_mixer,
13068 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013069 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13070 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013071 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13072 msm_routing_get_port_mixer,
13073 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013074 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13075 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013076 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13077 msm_routing_get_port_mixer,
13078 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013079 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013081 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13082 msm_routing_get_port_mixer,
13083 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013084 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13085 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013086 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13087 msm_routing_get_port_mixer,
13088 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013089 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013091 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13092 msm_routing_get_port_mixer,
13093 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013094 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013096 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13097 msm_routing_get_port_mixer,
13098 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013099 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013101 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13102 msm_routing_get_port_mixer,
13103 msm_routing_put_port_mixer),
13104};
13105
13106static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013107 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013109 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13110 msm_routing_get_port_mixer,
13111 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013112 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13113 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013114 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13115 msm_routing_get_port_mixer,
13116 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013117 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13118 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013119 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13120 msm_routing_get_port_mixer,
13121 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013122 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013124 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13125 msm_routing_get_port_mixer,
13126 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013127 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013129 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13130 msm_routing_get_port_mixer,
13131 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013132 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13133 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013134 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13135 msm_routing_get_port_mixer,
13136 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013137 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13138 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013139 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13140 msm_routing_get_port_mixer,
13141 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013142 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013144 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13145 msm_routing_get_port_mixer,
13146 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013147 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13148 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013149 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13150 msm_routing_get_port_mixer,
13151 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013152 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13153 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013154 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13155 msm_routing_get_port_mixer,
13156 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013157 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013159 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13160 msm_routing_get_port_mixer,
13161 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013162 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013164 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13165 msm_routing_get_port_mixer,
13166 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013167 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13168 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013169 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13170 msm_routing_get_port_mixer,
13171 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013172 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13173 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013174 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13175 msm_routing_get_port_mixer,
13176 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013177 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013179 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13180 msm_routing_get_port_mixer,
13181 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013182 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13183 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013184 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13185 msm_routing_get_port_mixer,
13186 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013187 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13188 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013189 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13190 msm_routing_get_port_mixer,
13191 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013192 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13193 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013194 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13195 msm_routing_get_port_mixer,
13196 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013197 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13198 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013199 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13200 msm_routing_get_port_mixer,
13201 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013202 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13203 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013204 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13205 msm_routing_get_port_mixer,
13206 msm_routing_put_port_mixer),
13207};
13208
13209static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013210 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13211 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013212 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13213 msm_routing_get_port_mixer,
13214 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013215 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13216 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013217 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13218 msm_routing_get_port_mixer,
13219 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013220 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13221 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013222 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13223 msm_routing_get_port_mixer,
13224 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013225 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013227 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13228 msm_routing_get_port_mixer,
13229 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013230 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013232 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13233 msm_routing_get_port_mixer,
13234 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013235 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13236 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013237 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13238 msm_routing_get_port_mixer,
13239 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013240 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013242 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13243 msm_routing_get_port_mixer,
13244 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013245 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013247 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13248 msm_routing_get_port_mixer,
13249 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013250 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013252 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13253 msm_routing_get_port_mixer,
13254 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013255 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13256 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013257 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13258 msm_routing_get_port_mixer,
13259 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013260 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13261 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013262 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13263 msm_routing_get_port_mixer,
13264 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013265 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013267 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13268 msm_routing_get_port_mixer,
13269 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013270 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13271 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013272 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13273 msm_routing_get_port_mixer,
13274 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013275 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13276 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013277 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13278 msm_routing_get_port_mixer,
13279 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013280 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013282 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13283 msm_routing_get_port_mixer,
13284 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013285 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13286 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013287 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13288 msm_routing_get_port_mixer,
13289 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013290 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13291 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013292 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13293 msm_routing_get_port_mixer,
13294 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013295 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013297 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13298 msm_routing_get_port_mixer,
13299 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013300 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13301 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013302 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13303 msm_routing_get_port_mixer,
13304 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013305 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13306 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013307 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13308 msm_routing_get_port_mixer,
13309 msm_routing_put_port_mixer),
13310};
13311
13312static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013313 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013315 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13316 msm_routing_get_port_mixer,
13317 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013318 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13319 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013320 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13321 msm_routing_get_port_mixer,
13322 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013323 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13324 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013325 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13326 msm_routing_get_port_mixer,
13327 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013328 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013330 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13331 msm_routing_get_port_mixer,
13332 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013333 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013335 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13336 msm_routing_get_port_mixer,
13337 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013338 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13339 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013340 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13341 msm_routing_get_port_mixer,
13342 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013343 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013345 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13346 msm_routing_get_port_mixer,
13347 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013348 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13349 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013350 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13351 msm_routing_get_port_mixer,
13352 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013353 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013355 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13356 msm_routing_get_port_mixer,
13357 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013358 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13359 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013360 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13361 msm_routing_get_port_mixer,
13362 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013363 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13364 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013365 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13366 msm_routing_get_port_mixer,
13367 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013368 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013370 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13371 msm_routing_get_port_mixer,
13372 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013373 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013375 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13376 msm_routing_get_port_mixer,
13377 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013378 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13379 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013380 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13381 msm_routing_get_port_mixer,
13382 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013383 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013385 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13386 msm_routing_get_port_mixer,
13387 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013388 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013390 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13391 msm_routing_get_port_mixer,
13392 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013393 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013395 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13396 msm_routing_get_port_mixer,
13397 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013398 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013400 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13401 msm_routing_get_port_mixer,
13402 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013403 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13404 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013405 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13406 msm_routing_get_port_mixer,
13407 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013408 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013410 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13411 msm_routing_get_port_mixer,
13412 msm_routing_put_port_mixer),
13413};
13414
13415static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013416 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013418 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13419 msm_routing_get_port_mixer,
13420 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013421 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013423 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13424 msm_routing_get_port_mixer,
13425 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013426 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13427 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013428 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13429 msm_routing_get_port_mixer,
13430 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013431 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013433 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13434 msm_routing_get_port_mixer,
13435 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013436 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013438 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13439 msm_routing_get_port_mixer,
13440 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013441 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13442 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013443 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13444 msm_routing_get_port_mixer,
13445 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013446 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013448 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13449 msm_routing_get_port_mixer,
13450 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013451 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13452 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013453 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13454 msm_routing_get_port_mixer,
13455 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013456 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013458 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13459 msm_routing_get_port_mixer,
13460 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013461 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13462 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013463 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13464 msm_routing_get_port_mixer,
13465 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013466 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13467 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013468 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13469 msm_routing_get_port_mixer,
13470 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013471 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13472 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013473 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13474 msm_routing_get_port_mixer,
13475 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013476 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013478 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13479 msm_routing_get_port_mixer,
13480 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013481 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013483 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13484 msm_routing_get_port_mixer,
13485 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013486 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13487 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013488 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13489 msm_routing_get_port_mixer,
13490 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013491 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13492 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013493 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13494 msm_routing_get_port_mixer,
13495 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013496 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13497 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013498 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13499 msm_routing_get_port_mixer,
13500 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013501 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13502 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013503 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13504 msm_routing_get_port_mixer,
13505 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013506 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013508 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13509 msm_routing_get_port_mixer,
13510 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013511 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013513 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13514 msm_routing_get_port_mixer,
13515 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013516};
13517
13518static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013519 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13520 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013521 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13522 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013523 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013525 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13526 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013527 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13528 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013529 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13530 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013531 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13532 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013533 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13534 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013535 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13536 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013537 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13538 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013539 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013541 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13542 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013543 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13544 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013545 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13546 msm_routing_put_port_mixer),
13547};
13548
13549static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013550 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13551 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013552 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13553 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013554 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13555 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013556 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13557 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013558 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13559 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013560 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13561 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013562 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13563 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013564 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13565 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013566 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13567 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013568 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13569 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013570 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13571 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013572 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13573 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013574 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13575 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013576 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13577 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013578 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013580 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13581 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013582 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13583 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080013584 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13585 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013586};
13587
13588static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013589 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013591 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13592 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013593 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013595 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13596 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013597 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013599 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13600 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013601 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13602 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013603 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13604 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013605 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13606 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013607 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13608 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013609 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013611 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13612 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013613 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13614 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013615 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13616 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013617 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013619 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13620 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013621 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013623 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13624 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013625 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013627 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13628 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013629};
13630
13631static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013632 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13633 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013634 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13635 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013636 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
13637 SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013639 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13640 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013641 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13644 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013645 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013647 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13648 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013649 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13650 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013651 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13652 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013653 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013655 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13656 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013657 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013659 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13660 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013661 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13662 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013663 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13664 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013665 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013667 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13668 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013669 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13670 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013671 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13672 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013673};
13674
13675static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013676 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13677 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013678 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13679 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013680 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13681 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013682 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13683 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013684 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13685 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013686 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13687 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013688 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13689 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013690 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13691 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013692 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13693 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013694 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13695 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013696 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13697 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013698 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13699 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013700 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13701 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013702 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13703 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013704 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13705 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013706 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13707 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013708 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13709 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013710 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13711 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013712 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13713 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013714 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13715 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013716};
13717
13718static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013719 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013721 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13722 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013723 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013725 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13726 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013727 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013729 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13730 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013731 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013733 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13734 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013735 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013737 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13738 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013739 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13740 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013741 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13742 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013743 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013745 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13746 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013747 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013749 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13750 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013751 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013753 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13754 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013755 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013757 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13758 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013759};
13760
13761static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013762 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13763 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013764 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13765 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013766 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013768 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13769 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013770 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13771 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013772 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13773 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013774 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013776 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13777 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013778 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013780 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13781 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013782 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013784 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13785 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013786 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013788 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13789 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013790 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013792 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13793 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013794 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013796 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13797 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013798 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013800 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13801 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013802};
13803
13804static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013805 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13806 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013807 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13808 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013809 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13810 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013811 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13812 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013813 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13814 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013815 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13816 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013817 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13818 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013819 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13820 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013821 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13822 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013823 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13824 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013825 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13826 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013827 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13828 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013829 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13830 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013831 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13832 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013833 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13834 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013835 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13836 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013837 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13838 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013839 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13840 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013841 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013843 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13844 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013845};
13846
13847static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013848 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13849 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013850 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13851 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013852 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13853 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013854 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13855 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013856 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13857 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013858 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13859 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013860 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13861 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013862 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13863 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013864 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013866 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13867 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013868 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13869 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013870 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13871 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013872 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13873 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013874 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13875 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013876 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13877 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013878 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13879 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013880 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13881 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013882 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13883 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013884 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013886 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13887 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013888};
13889
13890static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013891 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13892 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013893 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13894 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013895 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013897 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13898 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013899 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013901 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13902 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013903 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013905 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13906 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013907 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013909 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13910 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013911 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013913 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13914 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013915 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13916 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013917 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13918 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013919 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13922 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013923 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013925 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13926 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013927 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013929 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13930 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013931};
13932
13933static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
13934 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13935 0, 1, 0, msm_routing_get_switch_mixer,
13936 msm_routing_put_switch_mixer);
13937
13938static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
13939 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13940 0, 1, 0, msm_routing_get_switch_mixer,
13941 msm_routing_put_switch_mixer);
13942
13943static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
13944 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13945 0, 1, 0, msm_routing_get_switch_mixer,
13946 msm_routing_put_switch_mixer);
13947
13948static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
13949 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13950 0, 1, 0, msm_routing_get_switch_mixer,
13951 msm_routing_put_switch_mixer);
13952
13953static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
13954 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13955 0, 1, 0, msm_routing_get_switch_mixer,
13956 msm_routing_put_switch_mixer);
13957
13958static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
13959 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13960 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
13961 msm_routing_put_fm_pcmrx_switch_mixer);
13962
13963static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
13964 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13965 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
13966 msm_routing_put_int0_mi2s_switch_mixer);
13967
13968static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
13969 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13970 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
13971 msm_routing_put_int4_mi2s_switch_mixer);
13972
13973static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
13974 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13975 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
13976 msm_routing_put_pri_mi2s_switch_mixer);
13977
13978static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
13979 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13980 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
13981 msm_routing_put_sec_mi2s_switch_mixer);
13982
13983static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
13984 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13985 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
13986 msm_routing_put_tert_mi2s_switch_mixer);
13987
13988static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
13989 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13990 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
13991 msm_routing_put_quat_mi2s_switch_mixer);
13992
Rohit Kumara5077932017-09-10 22:05:05 +053013993static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
13994 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13995 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
13996 msm_routing_put_quin_mi2s_switch_mixer);
13997
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013998static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
13999 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14000 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14001 msm_routing_put_hfp_switch_mixer);
14002
14003static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
14004 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14005 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14006 msm_routing_put_hfp_switch_mixer);
14007
14008static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
14009 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14010 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14011 msm_routing_put_hfp_switch_mixer);
14012
14013static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
14014 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14015 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14016 msm_routing_put_hfp_switch_mixer);
14017
14018static const struct snd_kcontrol_new usb_switch_mixer_controls =
14019 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14020 0, 1, 0, msm_routing_get_usb_switch_mixer,
14021 msm_routing_put_usb_switch_mixer);
14022
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080014023static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
14024 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14025 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
14026 msm_routing_a2dp_switch_mixer_put);
14027
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014028static const struct soc_enum lsm_port_enum =
14029 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
14030
14031static const char * const lsm_func_text[] = {
14032 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
14033};
14034static const struct soc_enum lsm_func_enum =
14035 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
14036
14037static const struct snd_kcontrol_new lsm_controls[] = {
14038 /* kcontrol of lsm_function */
14039 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14040 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14041 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14042 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14043 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14044 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14045 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14046 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14047 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14048 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14049 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14050 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14051 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14052 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14053 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14054 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14055 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14056 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Ashish Jain01b10322018-05-12 15:37:44 +053014057 SOC_ENUM_EXT(PRI_TDM_TX_2_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14058 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14059 SOC_ENUM_EXT(PRI_TDM_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14060 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014061 /* kcontrol of lsm_port */
14062 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
14063 msm_routing_lsm_port_get,
14064 msm_routing_lsm_port_put),
14065 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
14066 msm_routing_lsm_port_get,
14067 msm_routing_lsm_port_put),
14068 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
14069 msm_routing_lsm_port_get,
14070 msm_routing_lsm_port_put),
14071 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
14072 msm_routing_lsm_port_get,
14073 msm_routing_lsm_port_put),
14074 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
14075 msm_routing_lsm_port_get,
14076 msm_routing_lsm_port_put),
14077 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
14078 msm_routing_lsm_port_get,
14079 msm_routing_lsm_port_put),
14080 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
14081 msm_routing_lsm_port_get,
14082 msm_routing_lsm_port_put),
14083 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
14084 msm_routing_lsm_port_get,
14085 msm_routing_lsm_port_put),
14086};
14087
14088static const char * const aanc_slim_0_rx_text[] = {
14089 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
14090 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
14091};
14092
14093static const struct soc_enum aanc_slim_0_rx_enum =
14094 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
14095 aanc_slim_0_rx_text);
14096
14097static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
14098 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
14099 msm_routing_slim_0_rx_aanc_mux_get,
14100 msm_routing_slim_0_rx_aanc_mux_put)
14101};
14102
14103static int msm_routing_get_stereo_to_custom_stereo_control(
14104 struct snd_kcontrol *kcontrol,
14105 struct snd_ctl_elem_value *ucontrol)
14106{
14107 ucontrol->value.integer.value[0] = is_custom_stereo_on;
14108 return 0;
14109}
14110
14111static int msm_routing_put_stereo_to_custom_stereo_control(
14112 struct snd_kcontrol *kcontrol,
14113 struct snd_ctl_elem_value *ucontrol)
14114{
14115 int flag = 0, i = 0, rc = 0, idx = 0;
14116 int be_index = 0, port_id, topo_id;
14117 unsigned int session_id = 0;
14118 uint16_t op_FL_ip_FL_weight = 0;
14119 uint16_t op_FL_ip_FR_weight = 0;
14120 uint16_t op_FR_ip_FL_weight = 0;
14121 uint16_t op_FR_ip_FR_weight = 0;
14122
14123 flag = ucontrol->value.integer.value[0];
14124 pr_debug("%s E flag %d\n", __func__, flag);
14125
14126 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
14127 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
14128 __func__, is_custom_stereo_on, flag);
14129 return 0;
14130 }
14131 is_custom_stereo_on = flag ? true : false;
14132 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
14133 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
14134 port_id = msm_bedais[be_index].port_id;
14135 if (!msm_bedais[be_index].active)
14136 continue;
14137 if ((port_id != SLIMBUS_0_RX) &&
14138 (port_id != RT_PROXY_PORT_001_RX) &&
14139 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
14140 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
14141 continue;
14142
14143 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
14144 MSM_FRONTEND_DAI_MM_SIZE) {
14145 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
14146 LEGACY_PCM_MODE)
14147 goto skip_send_custom_stereo;
14148 session_id =
14149 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
14150 if (is_custom_stereo_on) {
14151 op_FL_ip_FL_weight =
14152 Q14_GAIN_ZERO_POINT_FIVE;
14153 op_FL_ip_FR_weight =
14154 Q14_GAIN_ZERO_POINT_FIVE;
14155 op_FR_ip_FL_weight =
14156 Q14_GAIN_ZERO_POINT_FIVE;
14157 op_FR_ip_FR_weight =
14158 Q14_GAIN_ZERO_POINT_FIVE;
14159 } else {
14160 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
14161 op_FL_ip_FR_weight = 0;
14162 op_FR_ip_FL_weight = 0;
14163 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
14164 }
14165 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
14166 unsigned long copp =
14167 session_copp_map[i]
14168 [SESSION_TYPE_RX][be_index];
14169 if (!test_bit(idx, &copp))
14170 goto skip_send_custom_stereo;
14171 topo_id = adm_get_topology_for_port_copp_idx(
14172 msm_bedais[be_index].port_id, idx);
14173 if (topo_id < 0)
14174 pr_debug("%s:Err:custom stereo topo %d",
14175 __func__, topo_id);
14176 pr_debug("idx %d\n", idx);
14177 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
14178 rc = msm_ds2_dap_set_custom_stereo_onoff
14179 (msm_bedais[be_index].port_id,
14180 idx, is_custom_stereo_on);
14181 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
14182 rc = dolby_dap_set_custom_stereo_onoff(
14183 msm_bedais[be_index].port_id,
14184 idx, is_custom_stereo_on);
14185 else
14186 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
14187 (msm_bedais[be_index].port_id,
14188 idx, session_id,
14189 op_FL_ip_FL_weight,
14190 op_FL_ip_FR_weight,
14191 op_FR_ip_FL_weight,
14192 op_FR_ip_FR_weight);
14193 if (rc < 0)
14194skip_send_custom_stereo:
14195 pr_err("%s: err setting custom stereo\n",
14196 __func__);
14197 }
14198
14199 }
14200 }
14201 return 0;
14202}
14203
14204static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
14205 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
14206 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
14207 msm_routing_put_stereo_to_custom_stereo_control),
14208};
14209
14210static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
14211 struct snd_ctl_elem_value *ucontrol)
14212{
14213 return 0;
14214}
14215
14216static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
14217 struct snd_ctl_elem_value *ucontrol)
14218{
14219 int i = 0, j;
14220 int num_app_types = ucontrol->value.integer.value[i++];
14221
14222 pr_debug("%s\n", __func__);
14223
14224 memset(app_type_cfg, 0, MAX_APP_TYPES*
14225 sizeof(struct msm_pcm_routing_app_type_data));
14226 if (num_app_types > MAX_APP_TYPES) {
14227 pr_err("%s: number of app types exceed the max supported\n",
14228 __func__);
14229 return -EINVAL;
14230 }
14231 for (j = 0; j < num_app_types; j++) {
14232 app_type_cfg[j].app_type =
14233 ucontrol->value.integer.value[i++];
14234 app_type_cfg[j].sample_rate =
14235 ucontrol->value.integer.value[i++];
14236 app_type_cfg[j].bit_width =
14237 ucontrol->value.integer.value[i++];
14238 }
14239
14240 return 0;
14241}
14242
14243static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
14244 struct snd_ctl_elem_value *ucontrol)
14245{
14246 int j, fe_id, be_id, port_type;
14247 int ret = 0;
14248 unsigned long copp;
14249 struct msm_pcm_routing_bdai_data *bedai;
14250 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
14251 SESSION_TYPE_RX;
14252 int app_type = ucontrol->value.integer.value[1];
14253 int gain = (ucontrol->value.integer.value[2] +
14254 ucontrol->value.integer.value[3])/2;
14255
14256 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
14257 MSM_AFE_PORT_TYPE_TX;
14258
14259 mutex_lock(&routing_lock);
14260 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
14261 if (is_be_dai_extproc(be_id))
14262 continue;
14263
14264 bedai = &msm_bedais[be_id];
14265 if (afe_get_port_type(bedai->port_id) != port_type)
14266 continue;
14267
14268 if (!bedai->active)
14269 continue;
14270
14271 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
14272 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
14273 continue;
14274
14275 if (app_type !=
14276 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
14277 continue;
14278
14279 copp = session_copp_map[fe_id][dir][be_id];
14280 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
14281 if (!test_bit(j, &copp))
14282 continue;
14283 ret |= adm_set_volume(bedai->port_id, j, gain);
14284 }
14285 }
14286 }
14287 mutex_unlock(&routing_lock);
14288 return ret ? -EINVAL : 0;
14289}
14290
14291static const struct snd_kcontrol_new app_type_cfg_controls[] = {
14292 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
14293 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
14294 msm_routing_put_app_type_cfg_control),
14295 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
14296 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
14297};
14298
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070014299static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
14300 struct snd_ctl_elem_value *ucontrol)
14301{
14302 int copp_idx, fe_id, be_id, port_type;
14303 int ret = 0;
14304 unsigned long copp;
14305 struct msm_pcm_routing_bdai_data *bedai;
14306 char *param_data = NULL;
14307 uint32_t *update_param_data = NULL;
14308 uint32_t param_size = sizeof(uint32_t) +
14309 sizeof(struct adm_param_data_v5);
14310 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
14311 SESSION_TYPE_RX;
14312 int app_type = ucontrol->value.integer.value[1];
14313 int module_id = ucontrol->value.integer.value[2];
14314 int instance_id = ucontrol->value.integer.value[3];
14315 int param_id = ucontrol->value.integer.value[4];
14316 int param_value = ucontrol->value.integer.value[5];
14317
14318 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
14319 MSM_AFE_PORT_TYPE_TX;
14320 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
14321 __func__, app_type, module_id,
14322 instance_id, param_id, param_value);
14323
14324 param_data = kzalloc(param_size, GFP_KERNEL);
14325 if (!param_data)
14326 return -ENOMEM;
14327
14328 update_param_data = (uint32_t *)param_data;
14329 *update_param_data++ = module_id;
14330 *update_param_data++ = param_id;
14331 *update_param_data++ = sizeof(uint32_t);
14332 *update_param_data++ = param_value;
14333
14334 mutex_lock(&routing_lock);
14335 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
14336 if (is_be_dai_extproc(be_id))
14337 continue;
14338
14339 bedai = &msm_bedais[be_id];
14340 if (afe_get_port_type(bedai->port_id) != port_type)
14341 continue;
14342
14343 if (!bedai->active)
14344 continue;
14345
14346 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
14347 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
14348 continue;
14349
14350 if (app_type !=
14351 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
14352 continue;
14353
14354 copp = session_copp_map[fe_id][dir][be_id];
14355 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
14356 copp_idx++) {
14357 if (!test_bit(copp_idx, &copp))
14358 continue;
14359
14360 ret = adm_send_params_v5(bedai->port_id,
14361 copp_idx,
14362 param_data,
14363 param_size);
14364 if (ret) {
14365 pr_err("%s: Setting param failed with err=%d\n",
14366 __func__, ret);
14367 ret = -EINVAL;
14368 goto done;
14369 }
14370 }
14371 }
14372 }
14373done:
14374 mutex_unlock(&routing_lock);
14375 kfree(param_data);
14376 return ret;
14377}
14378
14379static const struct snd_kcontrol_new module_cfg_controls[] = {
14380 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
14381 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
14382};
14383
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014384static int msm_routing_get_lsm_app_type_cfg_control(
14385 struct snd_kcontrol *kcontrol,
14386 struct snd_ctl_elem_value *ucontrol)
14387{
14388 return 0;
14389}
14390
14391static int msm_routing_put_lsm_app_type_cfg_control(
14392 struct snd_kcontrol *kcontrol,
14393 struct snd_ctl_elem_value *ucontrol)
14394{
14395 int i = 0, j;
14396 int num_app_types = ucontrol->value.integer.value[i++];
14397
14398 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
14399 sizeof(struct msm_pcm_routing_app_type_data));
14400 if (num_app_types > MAX_APP_TYPES) {
14401 pr_err("%s: number of app types exceed the max supported\n",
14402 __func__);
14403 return -EINVAL;
14404 }
14405 for (j = 0; j < num_app_types; j++) {
14406 lsm_app_type_cfg[j].app_type =
14407 ucontrol->value.integer.value[i++];
14408 lsm_app_type_cfg[j].sample_rate =
14409 ucontrol->value.integer.value[i++];
14410 lsm_app_type_cfg[j].bit_width =
14411 ucontrol->value.integer.value[i++];
14412 }
14413
14414 return 0;
14415}
14416
14417static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
14418 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
14419 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
14420 msm_routing_put_lsm_app_type_cfg_control),
14421};
14422
14423static int msm_routing_get_use_ds1_or_ds2_control(
14424 struct snd_kcontrol *kcontrol,
14425 struct snd_ctl_elem_value *ucontrol)
14426{
14427 ucontrol->value.integer.value[0] = is_ds2_on;
14428 return 0;
14429}
14430
14431static int msm_routing_put_use_ds1_or_ds2_control(
14432 struct snd_kcontrol *kcontrol,
14433 struct snd_ctl_elem_value *ucontrol)
14434{
14435 is_ds2_on = ucontrol->value.integer.value[0];
14436 return 0;
14437}
14438
14439static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
14440 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
14441 1, 0, msm_routing_get_use_ds1_or_ds2_control,
14442 msm_routing_put_use_ds1_or_ds2_control),
14443};
14444
14445int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
14446 struct snd_ctl_elem_value *ucontrol) {
14447 int rc = 0;
14448 int be_idx = 0;
14449 char *param_value;
14450 int *update_param_value;
14451 uint32_t param_length = sizeof(uint32_t);
14452 uint32_t param_payload_len = RMS_PAYLOAD_LEN * sizeof(uint32_t);
14453
14454 param_value = kzalloc(param_length + param_payload_len, GFP_KERNEL);
14455 if (!param_value)
14456 return -ENOMEM;
14457
14458 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
14459 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
14460 break;
14461 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
14462 rc = adm_get_params(SLIMBUS_0_TX, 0,
14463 RMS_MODULEID_APPI_PASSTHRU,
14464 RMS_PARAM_FIRST_SAMPLE,
14465 param_length + param_payload_len,
14466 param_value);
14467 if (rc) {
14468 pr_err("%s: get parameters failed:%d\n", __func__, rc);
14469 kfree(param_value);
14470 return -EINVAL;
14471 }
14472 update_param_value = (int *)param_value;
14473 ucontrol->value.integer.value[0] = update_param_value[0];
14474
14475 pr_debug("%s: FROM DSP value[0] 0x%x\n",
14476 __func__, update_param_value[0]);
14477 }
14478 kfree(param_value);
14479 return 0;
14480}
14481
14482static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
14483 struct snd_ctl_elem_value *ucontrol)
14484{
14485 voc_session_id = ucontrol->value.integer.value[0];
14486
14487 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
14488
14489 return 0;
14490}
14491
14492static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
14493 struct snd_ctl_elem_value *ucontrol)
14494{
14495 ucontrol->value.integer.value[0] = voc_session_id;
14496
14497 return 0;
14498}
14499
14500static struct snd_kcontrol_new msm_voc_session_controls[] = {
14501 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
14502 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
14503 msm_voc_session_id_put),
14504};
14505
14506static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
14507 struct snd_ctl_elem_info *uinfo)
14508{
14509 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
14510 uinfo->count = sizeof(struct sound_focus_param);
14511
14512 return 0;
14513}
14514
14515static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
14516 struct snd_ctl_elem_value *ucontrol)
14517{
14518 int ret = 0;
14519 struct sound_focus_param soundFocusData;
14520
14521 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
14522 sizeof(struct sound_focus_param));
14523 ret = voc_set_sound_focus(soundFocusData);
14524 if (ret) {
14525 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
14526 __func__, ret);
14527
14528 ret = -EINVAL;
14529 }
14530
14531 return ret;
14532}
14533
14534static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
14535 struct snd_ctl_elem_value *ucontrol)
14536{
14537 int ret = 0;
14538 struct sound_focus_param soundFocusData;
14539
14540 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
14541
14542 ret = voc_get_sound_focus(&soundFocusData);
14543 if (ret) {
14544 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
14545 __func__, ret);
14546
14547 ret = -EINVAL;
14548 goto done;
14549 }
14550 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
14551 sizeof(struct sound_focus_param));
14552
14553done:
14554 return ret;
14555}
14556
14557static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
14558 struct snd_ctl_elem_info *uinfo)
14559{
14560 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
14561 uinfo->count = sizeof(struct source_tracking_param);
14562
14563 return 0;
14564}
14565
14566static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
14567 struct snd_ctl_elem_value *ucontrol)
14568{
14569 int ret = 0;
14570 struct source_tracking_param sourceTrackingData;
14571
14572 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
14573
14574 ret = voc_get_source_tracking(&sourceTrackingData);
14575 if (ret) {
14576 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
14577 __func__, ret);
14578
14579 ret = -EINVAL;
14580 goto done;
14581 }
14582 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
14583 sizeof(struct source_tracking_param));
14584
14585done:
14586 return ret;
14587}
14588
14589static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
14590 int *copp_idx)
14591{
14592 int i, idx, be_idx;
14593 int ret = 0;
14594 unsigned long copp;
14595
14596 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
14597
14598 ret = q6audio_validate_port(port_id);
14599 if (ret < 0) {
14600 pr_err("%s: port validation failed id 0x%x ret %d\n",
14601 __func__, port_id, ret);
14602
14603 ret = -EINVAL;
14604 goto done;
14605 }
14606
14607 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
14608 if (msm_bedais[be_idx].port_id == port_id)
14609 break;
14610 }
14611 if (be_idx >= MSM_BACKEND_DAI_MAX) {
14612 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
14613
14614 ret = -EINVAL;
14615 goto done;
14616 }
14617
14618 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
14619 MSM_FRONTEND_DAI_MM_SIZE) {
14620 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
14621 copp = session_copp_map[i]
14622 [session_type][be_idx];
14623 if (test_bit(idx, &copp))
14624 break;
14625 }
14626 if (idx >= MAX_COPPS_PER_PORT)
14627 continue;
14628 else
14629 break;
14630 }
14631 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
14632 pr_err("%s: Invalid FE, exiting\n", __func__);
14633
14634 ret = -EINVAL;
14635 goto done;
14636 }
14637 *copp_idx = idx;
14638 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
14639
14640done:
14641 return ret;
14642}
14643
14644static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
14645 const char *prefix, int *port_id)
14646{
14647 int ret = 0;
14648
14649 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
14650
14651 /*
14652 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
14653 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
14654 * and compare the string with the backend name to derive the port id.
14655 */
14656 if (!strcmp(kcontrol->id.name + strlen(prefix),
14657 "SLIMBUS_0")) {
14658 *port_id = SLIMBUS_0_TX;
14659 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
14660 "TERT_MI2S")) {
14661 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
14662 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
14663 "INT3_MI2S")) {
14664 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Sachin Mohan Gadag8c6e2db2018-07-16 19:53:19 +053014665 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
14666 "PRIMARY_TDM")) {
14667 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014668 } else {
14669 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
14670 __func__, kcontrol->id.name);
14671
14672 ret = -EINVAL;
14673 goto done;
14674 }
14675 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
14676 __func__, kcontrol->id.name, *port_id);
14677
14678done:
14679 return ret;
14680}
14681
14682static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
14683 struct snd_ctl_elem_value *ucontrol)
14684{
14685 int ret = 0;
14686 struct sound_focus_param soundFocusData;
14687 int port_id, copp_idx;
14688
14689 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
14690 "Sound Focus Audio Tx ", &port_id);
14691 if (ret != 0) {
14692 pr_err("%s: Error in deriving port id, err=%d\n",
14693 __func__, ret);
14694
14695 ret = -EINVAL;
14696 goto done;
14697 }
14698
14699 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
14700 &copp_idx);
14701 if (ret) {
14702 pr_err("%s: Could not get copp idx for port_id=%d\n",
14703 __func__, port_id);
14704
14705 ret = -EINVAL;
14706 goto done;
14707 }
14708
14709 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
14710 sizeof(struct sound_focus_param));
14711
14712 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
14713 if (ret) {
14714 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
14715 __func__, ret);
14716
14717 ret = -EINVAL;
14718 goto done;
14719 }
14720
14721done:
14722 return ret;
14723}
14724
14725static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
14726 struct snd_ctl_elem_value *ucontrol)
14727{
14728 int ret = 0;
14729 struct sound_focus_param soundFocusData;
14730 int port_id, copp_idx;
14731
14732 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
14733 "Sound Focus Audio Tx ", &port_id);
14734 if (ret) {
14735 pr_err("%s: Error in deriving port id, err=%d\n",
14736 __func__, ret);
14737
14738 ret = -EINVAL;
14739 goto done;
14740 }
14741
14742 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
14743 &copp_idx);
14744 if (ret) {
14745 pr_err("%s: Could not get copp idx for port_id=%d\n",
14746 __func__, port_id);
14747
14748 ret = -EINVAL;
14749 goto done;
14750 }
14751
14752 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
14753 if (ret) {
14754 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
14755 __func__, ret);
14756
14757 ret = -EINVAL;
14758 goto done;
14759 }
14760
14761 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
14762 sizeof(struct sound_focus_param));
14763
14764done:
14765 return ret;
14766}
14767
14768static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
14769 struct snd_ctl_elem_value *ucontrol)
14770{
14771 int ret = 0;
14772 struct source_tracking_param sourceTrackingData;
14773 int port_id, copp_idx;
14774
14775 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
14776 "Source Tracking Audio Tx ", &port_id);
14777 if (ret) {
14778 pr_err("%s: Error in deriving port id, err=%d\n",
14779 __func__, ret);
14780
14781 ret = -EINVAL;
14782 goto done;
14783 }
14784
14785 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
14786 &copp_idx);
14787 if (ret) {
14788 pr_err("%s: Could not get copp idx for port_id=%d\n",
14789 __func__, port_id);
14790
14791 ret = -EINVAL;
14792 goto done;
14793 }
14794
14795 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
14796 if (ret) {
14797 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
14798 __func__, ret);
14799
14800 ret = -EINVAL;
14801 goto done;
14802 }
14803
14804 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
14805 sizeof(struct source_tracking_param));
14806
14807done:
14808 return ret;
14809}
14810
14811static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
14812 {
14813 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14814 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14815 .name = "Sound Focus Voice Tx SLIMBUS_0",
14816 .info = msm_sound_focus_info,
14817 .get = msm_voice_sound_focus_get,
14818 .put = msm_voice_sound_focus_put,
14819 },
14820 {
14821 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14822 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14823 .name = "Source Tracking Voice Tx SLIMBUS_0",
14824 .info = msm_source_tracking_info,
14825 .get = msm_voice_source_tracking_get,
14826 },
14827 {
14828 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14829 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14830 .name = "Sound Focus Audio Tx SLIMBUS_0",
14831 .info = msm_sound_focus_info,
14832 .get = msm_audio_sound_focus_get,
14833 .put = msm_audio_sound_focus_put,
14834 },
14835 {
14836 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14837 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14838 .name = "Source Tracking Audio Tx SLIMBUS_0",
14839 .info = msm_source_tracking_info,
14840 .get = msm_audio_source_tracking_get,
14841 },
14842 {
14843 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14844 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14845 .name = "Sound Focus Voice Tx TERT_MI2S",
14846 .info = msm_sound_focus_info,
14847 .get = msm_voice_sound_focus_get,
14848 .put = msm_voice_sound_focus_put,
14849 },
14850 {
14851 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14852 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14853 .name = "Source Tracking Voice Tx TERT_MI2S",
14854 .info = msm_source_tracking_info,
14855 .get = msm_voice_source_tracking_get,
14856 },
14857 {
14858 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14859 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14860 .name = "Sound Focus Audio Tx TERT_MI2S",
14861 .info = msm_sound_focus_info,
14862 .get = msm_audio_sound_focus_get,
14863 .put = msm_audio_sound_focus_put,
14864 },
14865 {
14866 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14867 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14868 .name = "Source Tracking Audio Tx TERT_MI2S",
14869 .info = msm_source_tracking_info,
14870 .get = msm_audio_source_tracking_get,
14871 },
14872 {
14873 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14874 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14875 .name = "Sound Focus Voice Tx INT3_MI2S",
14876 .info = msm_sound_focus_info,
14877 .get = msm_voice_sound_focus_get,
14878 .put = msm_voice_sound_focus_put,
14879 },
14880 {
14881 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14882 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14883 .name = "Source Tracking Voice Tx INT3_MI2S",
14884 .info = msm_source_tracking_info,
14885 .get = msm_voice_source_tracking_get,
14886 },
14887 {
14888 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14889 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14890 .name = "Sound Focus Audio Tx INT3_MI2S",
14891 .info = msm_sound_focus_info,
14892 .get = msm_audio_sound_focus_get,
14893 .put = msm_audio_sound_focus_put,
14894 },
14895 {
14896 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14897 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14898 .name = "Source Tracking Audio Tx INT3_MI2S",
14899 .info = msm_source_tracking_info,
14900 .get = msm_audio_source_tracking_get,
14901 },
Sachin Mohan Gadag8c6e2db2018-07-16 19:53:19 +053014902 {
14903 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14904 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14905 .name = "Sound Focus Audio Tx PRIMARY_TDM",
14906 .info = msm_sound_focus_info,
14907 .get = msm_audio_sound_focus_get,
14908 .put = msm_audio_sound_focus_put,
14909 },
14910 {
14911 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14912 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14913 .name = "Source Tracking Audio Tx PRIMARY_TDM",
14914 .info = msm_source_tracking_info,
14915 .get = msm_audio_source_tracking_get,
14916 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014917};
14918
14919static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
14920 struct snd_ctl_elem_value *ucontrol)
14921{
14922 int ret = 0;
14923 int item;
14924 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
14925
14926 pr_debug("%s item is %d\n", __func__,
14927 ucontrol->value.enumerated.item[0]);
14928 mutex_lock(&routing_lock);
14929 item = ucontrol->value.enumerated.item[0];
14930 if (item < e->items) {
14931 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
14932 __func__, e->shift_l, e->values[item]);
14933 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
14934 e->values[item] < MSM_BACKEND_DAI_MAX)
14935 /* Enable feedback TX path */
14936 ret = afe_spk_prot_feed_back_cfg(
14937 msm_bedais[e->values[item]].port_id,
14938 msm_bedais[e->shift_l].port_id, 1, 0, 1);
14939 else {
14940 pr_debug("%s values are out of range item %d\n",
14941 __func__, e->values[item]);
14942 /* Disable feedback TX path */
14943 if (e->values[item] == MSM_BACKEND_DAI_MAX)
14944 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
14945 else
14946 ret = -EINVAL;
14947 }
14948 } else {
14949 pr_err("%s item value is out of range item\n", __func__);
14950 ret = -EINVAL;
14951 }
14952 mutex_unlock(&routing_lock);
14953 return ret;
14954}
14955
14956static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
14957 struct snd_ctl_elem_value *ucontrol)
14958{
14959 int ret = 0;
14960 int item;
14961 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
14962
14963 pr_debug("%s item is %d\n", __func__,
14964 ucontrol->value.enumerated.item[0]);
14965 mutex_lock(&routing_lock);
14966 item = ucontrol->value.enumerated.item[0];
14967 if (item < e->items) {
14968 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
14969 __func__, e->shift_l, e->values[item]);
14970 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
14971 e->values[item] < MSM_BACKEND_DAI_MAX)
14972 /* Enable feedback TX path */
14973 ret = afe_spk_prot_feed_back_cfg(
14974 msm_bedais[e->values[item]].port_id,
14975 msm_bedais[e->shift_l].port_id,
14976 1, 1, 1);
14977 else {
14978 pr_debug("%s values are out of range item %d\n",
14979 __func__, e->values[item]);
14980 /* Disable feedback TX path */
14981 if (e->values[item] == MSM_BACKEND_DAI_MAX)
14982 ret = afe_spk_prot_feed_back_cfg(0,
14983 0, 0, 0, 0);
14984 else
14985 ret = -EINVAL;
14986 }
14987 } else {
14988 pr_err("%s item value is out of range item\n", __func__);
14989 ret = -EINVAL;
14990 }
14991 mutex_unlock(&routing_lock);
14992 return ret;
14993}
14994
14995static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
14996 struct snd_ctl_elem_value *ucontrol)
14997{
14998 pr_debug("%s\n", __func__);
14999 return 0;
15000}
15001
15002static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
15003 struct snd_ctl_elem_value *ucontrol)
15004{
15005 pr_debug("%s\n", __func__);
15006 ucontrol->value.enumerated.item[0] = 0;
15007 return 0;
15008}
15009
15010static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
15011 "ZERO", "SLIM4_TX"
15012};
15013
15014static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
15015 "ZERO", "SLIM4_TX"
15016};
15017
15018static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
15019 "ZERO", "SENARY_TX"
15020};
15021
15022static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
15023 "ZERO", "INT5_MI2S_TX"
15024};
15025
15026static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
15027 "ZERO", "INT5_MI2S_TX"
15028};
15029
15030static const int const slim0_rx_vi_fb_tx_lch_value[] = {
15031 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
15032};
15033
15034static const int const slim0_rx_vi_fb_tx_rch_value[] = {
15035 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
15036};
15037
15038static const int const mi2s_rx_vi_fb_tx_value[] = {
15039 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
15040};
15041
15042static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
15043 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
15044};
15045
15046static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
15047 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
15048};
15049
15050static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015051 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015052 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
15053 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
15054
15055static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015056 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015057 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
15058 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
15059
15060static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015061 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015062 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
15063 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
15064
15065static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015066 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015067 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
15068 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
15069 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
15070
15071static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015072 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015073 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
15074 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
15075 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
15076
15077static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
15078 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
15079 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
15080 spkr_prot_put_vi_lch_port);
15081
15082static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
15083 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
15084 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
15085 spkr_prot_put_vi_rch_port);
15086
15087static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
15088 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
15089 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
15090 spkr_prot_put_vi_lch_port);
15091
15092static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
15093 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
15094 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
15095 spkr_prot_put_vi_lch_port);
15096
15097static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
15098 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
15099 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
15100 spkr_prot_put_vi_rch_port);
15101
15102static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
15103 /* Frontend AIF */
15104 /* Widget name equals to Front-End DAI name<Need confirmation>,
15105 * Stream name must contains substring of front-end dai name
15106 */
15107 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
15108 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
15109 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
15110 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
15111 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
15112 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
15113 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
15114 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
15115 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
15116 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
15117 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
15118 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
15119 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
15120 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
15121 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
15122 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
15123 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
15124 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
15125 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
15126 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
15127 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
15128 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
15129 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
15130 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
15131 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
15132 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053015133 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053015134 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015135 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
15136 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
15137 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
15138 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Meng Wangbe8194e2018-04-25 10:40:01 +080015139 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
15140 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015141 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
15142 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
15143 "VoiceMMode1 Playback", 0, 0, 0, 0),
15144 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
15145 "VoiceMMode1 Capture", 0, 0, 0, 0),
15146 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
15147 "VoiceMMode2 Playback", 0, 0, 0, 0),
15148 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
15149 "VoiceMMode2 Capture", 0, 0, 0, 0),
15150 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
15151 0, 0, 0, 0),
15152 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
15153 0, 0, 0, 0),
15154 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
15155 0, 0, 0, 0),
15156 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
15157 0, 0, 0, 0),
15158 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
15159 0, 0, 0, 0),
15160 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
15161 0, 0, 0, 0),
15162 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
15163 0, 0, 0, 0),
15164 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
15165 0, 0, 0, 0),
15166 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
15167 0, 0, 0, 0),
15168 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
15169 0, 0, 0, 0),
15170 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
15171 0, 0, 0, 0),
15172 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
15173 0, 0, 0, 0),
15174 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
15175 0, 0, 0, 0),
15176 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
15177 0, 0, 0, 0),
15178 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
15179 0, 0, 0, 0),
15180 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
15181 0, 0, 0, 0),
15182 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
15183 0, 0, 0, 0),
15184 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
15185 0, 0, 0, 0),
15186 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
15187 0, 0, 0, 0),
15188 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
15189 0, 0, 0, 0),
15190 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
15191 0, 0, 0, 0),
15192 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
15193 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
15194 0, 0, 0, 0),
15195 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
15196 "INT0 MI2S_RX Hostless Playback",
15197 0, 0, 0, 0),
15198 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
15199 "INT4 MI2S_RX Hostless Playback",
15200 0, 0, 0, 0),
15201 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
15202 "Primary MI2S_RX Hostless Playback",
15203 0, 0, 0, 0),
15204 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
15205 "Secondary MI2S_RX Hostless Playback",
15206 0, 0, 0, 0),
15207 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
15208 "Tertiary MI2S_RX Hostless Playback",
15209 0, 0, 0, 0),
15210 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
15211 "Quaternary MI2S_RX Hostless Playback",
15212 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015213 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
15214 "Quinary MI2S_RX Hostless Playback",
15215 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015216
15217 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
15218 0, 0, 0, 0),
15219 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
15220 0, 0, 0, 0),
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080015221 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
15222 0, 0, 0, 0),
15223 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
15224 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015225 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
15226 0, 0, 0, 0),
15227 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
15228 "INT3 MI2S_TX Hostless Capture",
15229 0, 0, 0, 0),
15230 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
15231 "Tertiary MI2S_TX Hostless Capture",
15232 0, 0, 0, 0),
15233 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
15234 "Secondary MI2S_TX Hostless Capture",
15235 0, 0, 0, 0),
15236 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
15237 "Primary MI2S_TX Hostless Capture",
15238 0, 0, 0, 0),
15239 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
15240 0, 0, 0, 0),
15241 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
15242 0, 0, 0, 0),
15243 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
15244 "Quaternary MI2S_TX Hostless Capture",
15245 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015246 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
15247 "Quinary MI2S_TX Hostless Capture",
15248 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015249
15250 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
15251 "Primary TDM0 Hostless Playback",
15252 0, 0, 0, 0),
15253 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
15254 "Primary TDM0 Hostless Capture",
15255 0, 0, 0, 0),
15256 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
15257 "Primary TDM1 Hostless Playback",
15258 0, 0, 0, 0),
15259 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
15260 "Primary TDM1 Hostless Capture",
15261 0, 0, 0, 0),
15262 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
15263 "Primary TDM2 Hostless Playback",
15264 0, 0, 0, 0),
15265 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
15266 "Primary TDM2 Hostless Capture",
15267 0, 0, 0, 0),
15268 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
15269 "Primary TDM3 Hostless Playback",
15270 0, 0, 0, 0),
15271 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
15272 "Primary TDM3 Hostless Capture",
15273 0, 0, 0, 0),
15274 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
15275 "Primary TDM4 Hostless Playback",
15276 0, 0, 0, 0),
15277 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
15278 "Primary TDM4 Hostless Capture",
15279 0, 0, 0, 0),
15280 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
15281 "Primary TDM5 Hostless Playback",
15282 0, 0, 0, 0),
15283 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
15284 "Primary TDM5 Hostless Capture",
15285 0, 0, 0, 0),
15286 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
15287 "Primary TDM6 Hostless Playback",
15288 0, 0, 0, 0),
15289 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
15290 "Primary TDM6 Hostless Capture",
15291 0, 0, 0, 0),
15292 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
15293 "Primary TDM7 Hostless Playback",
15294 0, 0, 0, 0),
15295 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
15296 "Primary TDM7 Hostless Capture",
15297 0, 0, 0, 0),
15298 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
15299 "Secondary TDM0 Hostless Playback",
15300 0, 0, 0, 0),
15301 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
15302 "Secondary TDM0 Hostless Capture",
15303 0, 0, 0, 0),
15304 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
15305 "Secondary TDM1 Hostless Playback",
15306 0, 0, 0, 0),
15307 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
15308 "Secondary TDM1 Hostless Capture",
15309 0, 0, 0, 0),
15310 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
15311 "Secondary TDM2 Hostless Playback",
15312 0, 0, 0, 0),
15313 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
15314 "Secondary TDM2 Hostless Capture",
15315 0, 0, 0, 0),
15316 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
15317 "Secondary TDM3 Hostless Playback",
15318 0, 0, 0, 0),
15319 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
15320 "Secondary TDM3 Hostless Capture",
15321 0, 0, 0, 0),
15322 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
15323 "Secondary TDM4 Hostless Playback",
15324 0, 0, 0, 0),
15325 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
15326 "Secondary TDM4 Hostless Capture",
15327 0, 0, 0, 0),
15328 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
15329 "Secondary TDM5 Hostless Playback",
15330 0, 0, 0, 0),
15331 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
15332 "Secondary TDM5 Hostless Capture",
15333 0, 0, 0, 0),
15334 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
15335 "Secondary TDM6 Hostless Playback",
15336 0, 0, 0, 0),
15337 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
15338 "Secondary TDM6 Hostless Capture",
15339 0, 0, 0, 0),
15340 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
15341 "Secondary TDM7 Hostless Playback",
15342 0, 0, 0, 0),
15343 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
15344 "Secondary TDM7 Hostless Capture",
15345 0, 0, 0, 0),
15346 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
15347 "Tertiary TDM0 Hostless Playback",
15348 0, 0, 0, 0),
15349 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
15350 "Tertiary TDM0 Hostless Capture",
15351 0, 0, 0, 0),
15352 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
15353 "Tertiary TDM1 Hostless Playback",
15354 0, 0, 0, 0),
15355 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
15356 "Tertiary TDM1 Hostless Capture",
15357 0, 0, 0, 0),
15358 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
15359 "Tertiary TDM2 Hostless Playback",
15360 0, 0, 0, 0),
15361 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
15362 "Tertiary TDM2 Hostless Capture",
15363 0, 0, 0, 0),
15364 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
15365 "Tertiary TDM3 Hostless Playback",
15366 0, 0, 0, 0),
15367 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
15368 "Tertiary TDM3 Hostless Capture",
15369 0, 0, 0, 0),
15370 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
15371 "Tertiary TDM4 Hostless Playback",
15372 0, 0, 0, 0),
15373 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
15374 "Tertiary TDM4 Hostless Capture",
15375 0, 0, 0, 0),
15376 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
15377 "Tertiary TDM5 Hostless Playback",
15378 0, 0, 0, 0),
15379 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
15380 "Tertiary TDM5 Hostless Capture",
15381 0, 0, 0, 0),
15382 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
15383 "Tertiary TDM6 Hostless Playback",
15384 0, 0, 0, 0),
15385 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
15386 "Tertiary TDM6 Hostless Capture",
15387 0, 0, 0, 0),
15388 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
15389 "Tertiary TDM7 Hostless Playback",
15390 0, 0, 0, 0),
15391 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
15392 "Tertiary TDM7 Hostless Capture",
15393 0, 0, 0, 0),
15394 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
15395 "Quaternary TDM0 Hostless Playback",
15396 0, 0, 0, 0),
15397 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
15398 "Quaternary TDM0 Hostless Capture",
15399 0, 0, 0, 0),
15400 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
15401 "Quaternary TDM1 Hostless Playback",
15402 0, 0, 0, 0),
15403 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
15404 "Quaternary TDM1 Hostless Capture",
15405 0, 0, 0, 0),
15406 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
15407 "Quaternary TDM2 Hostless Playback",
15408 0, 0, 0, 0),
15409 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
15410 "Quaternary TDM2 Hostless Capture",
15411 0, 0, 0, 0),
15412 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
15413 "Quaternary TDM3 Hostless Playback",
15414 0, 0, 0, 0),
15415 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
15416 "Quaternary TDM3 Hostless Capture",
15417 0, 0, 0, 0),
15418 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
15419 "Quaternary TDM4 Hostless Playback",
15420 0, 0, 0, 0),
15421 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
15422 "Quaternary TDM4 Hostless Capture",
15423 0, 0, 0, 0),
15424 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
15425 "Quaternary TDM5 Hostless Playback",
15426 0, 0, 0, 0),
15427 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
15428 "Quaternary TDM5 Hostless Capture",
15429 0, 0, 0, 0),
15430 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
15431 "Quaternary TDM6 Hostless Playback",
15432 0, 0, 0, 0),
15433 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
15434 "Quaternary TDM6 Hostless Capture",
15435 0, 0, 0, 0),
15436 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
15437 "Quaternary TDM7 Hostless Playback",
15438 0, 0, 0, 0),
15439 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
15440 "Quaternary TDM7 Hostless Capture",
15441 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015442 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
15443 "Quinary TDM0 Hostless Playback",
15444 0, 0, 0, 0),
15445 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
15446 "Quinary TDM0 Hostless Capture",
15447 0, 0, 0, 0),
15448 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
15449 "Quinary TDM1 Hostless Playback",
15450 0, 0, 0, 0),
15451 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
15452 "Quinary TDM1 Hostless Capture",
15453 0, 0, 0, 0),
15454 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
15455 "Quinary TDM2 Hostless Playback",
15456 0, 0, 0, 0),
15457 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
15458 "Quinary TDM2 Hostless Capture",
15459 0, 0, 0, 0),
15460 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
15461 "Quinary TDM3 Hostless Playback",
15462 0, 0, 0, 0),
15463 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
15464 "Quinary TDM3 Hostless Capture",
15465 0, 0, 0, 0),
15466 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
15467 "Quinary TDM4 Hostless Playback",
15468 0, 0, 0, 0),
15469 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
15470 "Quinary TDM4 Hostless Capture",
15471 0, 0, 0, 0),
15472 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
15473 "Quinary TDM5 Hostless Playback",
15474 0, 0, 0, 0),
15475 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
15476 "Quinary TDM5 Hostless Capture",
15477 0, 0, 0, 0),
15478 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
15479 "Quinary TDM6 Hostless Playback",
15480 0, 0, 0, 0),
15481 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
15482 "Quinary TDM6 Hostless Capture",
15483 0, 0, 0, 0),
15484 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
15485 "Quinary TDM7 Hostless Playback",
15486 0, 0, 0, 0),
15487 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
15488 "Quinary TDM7 Hostless Capture",
15489 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015490
15491 /* LSM */
15492 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
15493 0, 0, 0, 0),
15494 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
15495 0, 0, 0, 0),
15496 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
15497 0, 0, 0, 0),
15498 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
15499 0, 0, 0, 0),
15500 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
15501 0, 0, 0, 0),
15502 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
15503 0, 0, 0, 0),
15504 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
15505 0, 0, 0, 0),
15506 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
15507 0, 0, 0, 0),
15508 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
15509 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
15510 /* Backend AIF */
15511 /* Stream name equals to backend dai link stream name */
15512 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
15513 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
15514 0, 0, 0, 0),
15515 SND_SOC_DAPM_AIF_OUT("SPDIF_RX", "SPDIF Playback", 0, 0, 0, 0),
15516 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
15517 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
15518 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
15519 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
15520 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
15521 0, 0, 0, 0),
15522 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
15523 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
15524 0, 0, 0, 0),
15525 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
15526 0, 0, 0, 0),
15527 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
15528 0, 0, 0, 0),
15529 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
15530 "Secondary MI2S Playback SD1",
15531 0, 0, 0, 0),
15532 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
15533 0, 0, 0, 0),
15534 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
15535 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053015536 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
15537 0, 0, 0, 0),
15538 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
15539 0, 0, 0, 0),
15540 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
15541 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015542 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
15543 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053015544 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
15545 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015546 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
15547 0, 0, 0, 0),
15548 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
15549 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
15550 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
15551 0, 0, 0, 0),
15552 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
15553 0, 0, 0, 0),
15554 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
15555 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053015556 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
15557 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015558 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
15559 0, 0, 0, 0),
15560 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
15561 0, 0, 0, 0),
15562 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
15563 0, 0, 0, 0),
15564 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
15565 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
15566 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
15567 0, 0, 0, 0),
15568 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
15569 0, 0, 0, 0),
15570 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
15571 0, 0, 0, 0),
15572 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
15573 0, 0, 0, 0),
15574 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
15575 0, 0, 0, 0),
15576 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
15577 0, 0, 0, 0),
15578 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
15579 0, 0, 0, 0),
15580 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
15581 0, 0, 0, 0),
15582 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
15583 0, 0, 0, 0),
15584 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
15585 0, 0, 0, 0),
15586 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
15587 0, 0, 0, 0),
15588 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
15589 0, 0, 0, 0),
15590 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
15591 0, 0, 0, 0),
15592 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
15593 0, 0, 0, 0),
15594 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
15595 0, 0, 0, 0),
15596 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
15597 0, 0, 0, 0),
15598 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
15599 0, 0, 0, 0),
15600 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
15601 0, 0, 0, 0),
15602 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
15603 0, 0, 0, 0),
15604 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
15605 0, 0, 0, 0),
15606 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
15607 0, 0, 0, 0),
15608 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
15609 0, 0, 0, 0),
15610 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
15611 0, 0, 0, 0),
15612 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
15613 0, 0, 0, 0),
15614 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
15615 0, 0, 0, 0),
15616 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
15617 0, 0, 0, 0),
15618 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
15619 0, 0, 0, 0),
15620 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
15621 0, 0, 0, 0),
15622 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
15623 0, 0, 0, 0),
15624 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
15625 0, 0, 0, 0),
15626 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
15627 0, 0, 0, 0),
15628 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
15629 0, 0, 0, 0),
15630 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
15631 0, 0, 0, 0),
15632 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
15633 0, 0, 0, 0),
15634 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
15635 0, 0, 0, 0),
15636 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
15637 0, 0, 0, 0),
15638 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
15639 0, 0, 0, 0),
15640 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
15641 0, 0, 0, 0),
15642 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
15643 0, 0, 0, 0),
15644 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
15645 0, 0, 0, 0),
15646 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
15647 0, 0, 0, 0),
15648 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
15649 0, 0, 0, 0),
15650 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
15651 0, 0, 0, 0),
15652 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
15653 0, 0, 0, 0),
15654 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
15655 0, 0, 0, 0),
15656 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
15657 0, 0, 0, 0),
15658 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
15659 0, 0, 0, 0),
15660 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
15661 0, 0, 0, 0),
15662 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
15663 0, 0, 0, 0),
15664 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
15665 0, 0, 0, 0),
15666 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
15667 0, 0, 0, 0),
15668 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
15669 0, 0, 0, 0),
15670 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
15671 0, 0, 0, 0),
15672 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
15673 0, 0, 0, 0),
15674 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
15675 0, 0, 0, 0),
15676 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
15677 0, 0, 0, 0),
15678 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
15679 0, 0, 0, 0),
15680 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
15681 0, 0, 0, 0),
15682 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
15683 0, 0, 0, 0),
15684 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
15685 0, 0, 0, 0),
15686 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
15687 0, 0, 0, 0),
15688 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
15689 0, 0, 0, 0),
15690 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
15691 0, 0, 0, 0),
15692 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
15693 0, 0, 0, 0),
15694 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
15695 0, 0, 0, 0),
15696 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
15697 0, 0, 0, 0),
15698 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
15699 0, 0, 0, 0),
15700 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
15701 0, 0, 0, 0),
15702 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
15703 0, 0, 0, 0),
15704 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
15705 0, 0, 0, 0),
15706 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
15707 0, 0, 0, 0),
15708 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
15709 0, 0, 0, 0),
15710 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
15711 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015712 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
15713 0, 0, 0, 0),
15714 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
15715 0, 0, 0, 0),
15716 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
15717 0, 0, 0, 0),
15718 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
15719 0, 0, 0, 0),
15720 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
15721 0, 0, 0, 0),
15722 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
15723 0, 0, 0, 0),
15724 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
15725 0, 0, 0, 0),
15726 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
15727 0, 0, 0, 0),
15728 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
15729 0, 0, 0, 0),
15730 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
15731 0, 0, 0, 0),
15732 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
15733 0, 0, 0, 0),
15734 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
15735 0, 0, 0, 0),
15736 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
15737 0, 0, 0, 0),
15738 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
15739 0, 0, 0, 0),
15740 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
15741 0, 0, 0, 0),
15742 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
15743 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015744 /* incall */
15745 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
15746 0, 0, 0, 0),
15747 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
15748 0, 0, 0, 0),
15749 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
15750 0, 0, 0, 0),
15751 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
15752 0, 0, 0, 0),
15753 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
15754 0, 0, 0, 0),
15755 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
15756 0, 0, 0, 0),
15757 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
15758 0, 0, 0, 0),
15759 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
15760 0, 0, 0, 0),
15761 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
15762
15763 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
15764 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
15765 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
15766 0, 0, 0, 0),
15767 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
15768 0, 0, 0, 0),
15769 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
15770 0, 0, 0, 0),
15771 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
15772 0, 0, 0, 0),
15773 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
15774 0, 0, 0, 0),
15775 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
15776 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015777 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
15778 0, 0, 0, 0),
15779 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
15780 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
15782 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
15783 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
15784 0, 0, 0, 0),
15785 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
15786 0, 0, 0, 0),
15787 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
15788 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
15789 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
15790 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
15791 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
15792 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
15793 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
15794 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
15795 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
15796 /* In- call recording */
15797 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
15798 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Raja Mallik425e1d32018-05-20 19:21:10 +053015799 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
15800 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015801 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
15802 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
15803
15804 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
15805 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
15806 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
15807 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
15808
15809 /* Switch Definitions */
15810 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
15811 &slim_fm_switch_mixer_controls),
15812 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
15813 &slim1_fm_switch_mixer_controls),
15814 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
15815 &slim3_fm_switch_mixer_controls),
15816 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
15817 &slim4_fm_switch_mixer_controls),
15818 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
15819 &slim6_fm_switch_mixer_controls),
15820 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15821 &pcm_rx_switch_mixer_controls),
15822 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15823 &int0_mi2s_rx_switch_mixer_controls),
15824 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15825 &int4_mi2s_rx_switch_mixer_controls),
15826 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15827 &pri_mi2s_rx_switch_mixer_controls),
15828 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15829 &sec_mi2s_rx_switch_mixer_controls),
15830 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15831 &tert_mi2s_rx_switch_mixer_controls),
15832 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15833 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053015834 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15835 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015836 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
15837 &hfp_pri_aux_switch_mixer_controls),
15838 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
15839 &hfp_aux_switch_mixer_controls),
15840 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
15841 &hfp_int_switch_mixer_controls),
15842 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
15843 &hfp_slim7_switch_mixer_controls),
15844 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
15845 &usb_switch_mixer_controls),
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080015846 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
15847 &a2dp_slim7_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015848
15849 /* Mixer definitions */
15850 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15851 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
15852 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15853 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
15854 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15855 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
15856 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15857 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
15858 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15859 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
15860 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15861 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
15862 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
15863 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
15864 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
15865 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
15866 SND_SOC_DAPM_MIXER("SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15867 spdif_rx_mixer_controls, ARRAY_SIZE(spdif_rx_mixer_controls)),
15868 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15869 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
15870 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15871 quaternary_mi2s_rx_mixer_controls,
15872 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
15873 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15874 tertiary_mi2s_rx_mixer_controls,
15875 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
15876 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15877 secondary_mi2s_rx_mixer_controls,
15878 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
15879 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15880 secondary_mi2s_rx2_mixer_controls,
15881 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
15882 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15883 primary_mi2s_rx_mixer_controls,
15884 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
15885 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15886 int0_mi2s_rx_mixer_controls,
15887 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
15888 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15889 int4_mi2s_rx_mixer_controls,
15890 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
15891 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15892 quinary_mi2s_rx_mixer_controls,
15893 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
15894 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15895 pri_tdm_rx_0_mixer_controls,
15896 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
15897 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15898 pri_tdm_rx_1_mixer_controls,
15899 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
15900 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15901 pri_tdm_rx_2_mixer_controls,
15902 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
15903 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15904 pri_tdm_rx_3_mixer_controls,
15905 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
15906 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15907 pri_tdm_tx_0_mixer_controls,
15908 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
15909 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15910 sec_tdm_rx_0_mixer_controls,
15911 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
15912 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15913 sec_tdm_rx_1_mixer_controls,
15914 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
15915 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15916 sec_tdm_rx_2_mixer_controls,
15917 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
15918 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15919 sec_tdm_rx_3_mixer_controls,
15920 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
15921 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15922 sec_tdm_tx_0_mixer_controls,
15923 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
15924 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15925 tert_tdm_rx_0_mixer_controls,
15926 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
15927 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15928 tert_tdm_tx_0_mixer_controls,
15929 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
15930 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15931 tert_tdm_rx_1_mixer_controls,
15932 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
15933 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15934 tert_tdm_rx_2_mixer_controls,
15935 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
15936 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15937 tert_tdm_rx_3_mixer_controls,
15938 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
15939 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
15940 tert_tdm_rx_4_mixer_controls,
15941 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
15942 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15943 quat_tdm_rx_0_mixer_controls,
15944 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
15945 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15946 quat_tdm_tx_0_mixer_controls,
15947 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
15948 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15949 quat_tdm_rx_1_mixer_controls,
15950 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
15951 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15952 quat_tdm_rx_2_mixer_controls,
15953 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
15954 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15955 quat_tdm_rx_3_mixer_controls,
15956 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053015957 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15958 quin_tdm_rx_0_mixer_controls,
15959 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
15960 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15961 quin_tdm_tx_0_mixer_controls,
15962 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
15963 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15964 quin_tdm_rx_1_mixer_controls,
15965 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
15966 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15967 quin_tdm_rx_2_mixer_controls,
15968 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
15969 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15970 quin_tdm_rx_3_mixer_controls,
15971 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015972 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
15973 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
15974 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
15975 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
15976 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
15977 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
15978 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
15979 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
15980 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
15981 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
15982 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
15983 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
15984 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
15985 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
15986 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
15987 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053015988 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
15989 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053015990 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
15991 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015992 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
15993 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
15994 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
15995 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
15996 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
15997 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
15998 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
15999 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016000 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
16001 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
16002 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
16003 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016004 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16005 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
16006 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16007 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
16008 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16009 tert_auxpcm_rx_mixer_controls,
16010 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
16011 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16012 quat_auxpcm_rx_mixer_controls,
16013 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016014 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16015 quin_auxpcm_rx_mixer_controls,
16016 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016017 /* incall */
16018 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
16019 incall_music_delivery_mixer_controls,
16020 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
16021 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
16022 incall_music2_delivery_mixer_controls,
16023 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
16024 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16025 slimbus_4_rx_mixer_controls,
16026 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
16027 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16028 slimbus_6_rx_mixer_controls,
16029 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
16030 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16031 usb_audio_rx_mixer_controls,
16032 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
16033 /* Voice Mixer */
16034 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
16035 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
16036 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
16037 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
16038 SND_SOC_NOPM, 0, 0,
16039 sec_i2s_rx_voice_mixer_controls,
16040 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
16041 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
16042 SND_SOC_NOPM, 0, 0,
16043 sec_mi2s_rx_voice_mixer_controls,
16044 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
16045 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
16046 SND_SOC_NOPM, 0, 0,
16047 slimbus_rx_voice_mixer_controls,
16048 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
16049 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
16050 SND_SOC_NOPM, 0, 0,
16051 bt_sco_rx_voice_mixer_controls,
16052 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
16053 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
16054 SND_SOC_NOPM, 0, 0,
16055 afe_pcm_rx_voice_mixer_controls,
16056 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
16057 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
16058 SND_SOC_NOPM, 0, 0,
16059 aux_pcm_rx_voice_mixer_controls,
16060 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
16061 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
16062 SND_SOC_NOPM, 0, 0,
16063 sec_aux_pcm_rx_voice_mixer_controls,
16064 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
16065 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
16066 SND_SOC_NOPM, 0, 0,
16067 tert_aux_pcm_rx_voice_mixer_controls,
16068 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
16069 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
16070 SND_SOC_NOPM, 0, 0,
16071 quat_aux_pcm_rx_voice_mixer_controls,
16072 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016073 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
16074 SND_SOC_NOPM, 0, 0,
16075 quin_aux_pcm_rx_voice_mixer_controls,
16076 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016077 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
16078 SND_SOC_NOPM, 0, 0,
16079 hdmi_rx_voice_mixer_controls,
16080 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
16081 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
16082 SND_SOC_NOPM, 0, 0,
16083 mi2s_rx_voice_mixer_controls,
16084 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
16085 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
16086 SND_SOC_NOPM, 0, 0,
16087 pri_mi2s_rx_voice_mixer_controls,
16088 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
16089 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
16090 SND_SOC_NOPM, 0, 0,
16091 int0_mi2s_rx_voice_mixer_controls,
16092 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
16093 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
16094 SND_SOC_NOPM, 0, 0,
16095 int4_mi2s_rx_voice_mixer_controls,
16096 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
16097 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
16098 SND_SOC_NOPM, 0, 0,
16099 tert_mi2s_rx_voice_mixer_controls,
16100 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
16101 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
16102 SND_SOC_NOPM, 0, 0,
16103 quat_mi2s_rx_voice_mixer_controls,
16104 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
16105 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
16106 SND_SOC_NOPM, 0, 0,
16107 quin_mi2s_rx_voice_mixer_controls,
16108 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Raja Mallik321d5712018-05-04 17:22:11 +053016109 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
16110 SND_SOC_NOPM, 0, 0,
16111 pri_tdm_rx_0_voice_mixer_controls,
16112 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
16113 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
16114 SND_SOC_NOPM, 0, 0,
16115 pri_tdm_rx_1_voice_mixer_controls,
16116 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
16117 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
16118 SND_SOC_NOPM, 0, 0,
16119 pri_tdm_rx_2_voice_mixer_controls,
16120 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
16121 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
16122 SND_SOC_NOPM, 0, 0,
16123 pri_tdm_rx_3_voice_mixer_controls,
16124 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016125 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
16126 SND_SOC_NOPM, 0, 0,
16127 quat_tdm_rx_2_voice_mixer_controls,
16128 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016129 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
16130 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
16131 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016132 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
16133 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
16134 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
16135 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
16136 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
16137 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
16138 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16139 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
16140 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16141 int_bt_a2dp_rx_mixer_controls,
16142 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
16143 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16144 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
16145 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16146 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
16147 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16148 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
16149 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16150 tx_voice2_stub_mixer_controls,
16151 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
16152 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16153 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
16154 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
16155 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
16156 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
16157 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
16158 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16159 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
16160 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
16161 SND_SOC_NOPM, 0, 0,
16162 slimbus_6_rx_voice_mixer_controls,
16163 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
16164 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16165 slimbus_7_rx_voice_mixer_controls,
16166 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
16167 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16168 slimbus_8_rx_voice_mixer_controls,
16169 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
16170 /* port mixer */
16171 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
16172 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
16173 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
16174 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
16175 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
16176 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
16177 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
16178 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
16179 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
16180 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
16181 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
16182 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
16183 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
16184 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
16185 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016186 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
16187 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
16188 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016189 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16190 sbus_1_rx_port_mixer_controls,
16191 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
16192 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16193 bt_sco_rx_port_mixer_controls,
16194 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
16195 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
16196 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
16197 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
16198 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
16199 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
16200 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
16201 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
16202 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
16203 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
16204 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
16205 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
16206 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
16207 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
16208 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
16209 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
16210 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
16211 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
16212 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
16213 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16214 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
16215 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16216 primary_mi2s_rx_port_mixer_controls,
16217 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
16218 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16219 sec_mi2s_rx_port_mixer_controls,
16220 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
16221 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16222 tert_mi2s_rx_port_mixer_controls,
16223 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
16224 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16225 quat_mi2s_rx_port_mixer_controls,
16226 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016227 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16228 quin_mi2s_rx_port_mixer_controls,
16229 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016230 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16231 pri_tdm_rx_0_port_mixer_controls,
16232 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
16233 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16234 pri_tdm_rx_1_port_mixer_controls,
16235 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
16236 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16237 pri_tdm_rx_2_port_mixer_controls,
16238 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
16239 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16240 pri_tdm_rx_3_port_mixer_controls,
16241 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
16242 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16243 sec_tdm_rx_0_port_mixer_controls,
16244 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
16245 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16246 sec_tdm_rx_1_port_mixer_controls,
16247 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
16248 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16249 sec_tdm_rx_2_port_mixer_controls,
16250 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
16251 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16252 sec_tdm_rx_3_port_mixer_controls,
16253 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
16254 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16255 tert_tdm_rx_0_port_mixer_controls,
16256 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
16257 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16258 tert_tdm_rx_1_port_mixer_controls,
16259 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
16260 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16261 tert_tdm_rx_2_port_mixer_controls,
16262 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
16263 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16264 tert_tdm_rx_3_port_mixer_controls,
16265 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
16266 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16267 quat_tdm_rx_0_port_mixer_controls,
16268 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
16269 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16270 quat_tdm_rx_1_port_mixer_controls,
16271 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
16272 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16273 quat_tdm_rx_2_port_mixer_controls,
16274 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
16275 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16276 quat_tdm_rx_3_port_mixer_controls,
16277 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016278 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16279 quin_tdm_rx_0_port_mixer_controls,
16280 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
16281 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16282 quin_tdm_rx_1_port_mixer_controls,
16283 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
16284 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16285 quin_tdm_rx_2_port_mixer_controls,
16286 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
16287 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16288 quin_tdm_rx_3_port_mixer_controls,
16289 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016290 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16291 int0_mi2s_rx_port_mixer_controls,
16292 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
16293 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16294 int4_mi2s_rx_port_mixer_controls,
16295 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
16296 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
16297 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
16298 ARRAY_SIZE(tx_qchat_mixer_controls)),
16299 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
16300 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
16301 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
16302 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
16303 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
16304 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080016305 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
16306 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
16307 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016308 /* lsm mixer definitions */
16309 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
16310 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
16311 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
16312 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
16313 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
16314 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
16315 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
16316 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
16317 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
16318 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
16319 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
16320 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
16321 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
16322 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
16323 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
16324 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
16325 /* Virtual Pins to force backends ON atm */
16326 SND_SOC_DAPM_OUTPUT("BE_OUT"),
16327 SND_SOC_DAPM_INPUT("BE_IN"),
16328
16329 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
16330 &slim0_rx_vi_fb_lch_mux),
16331 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
16332 &slim0_rx_vi_fb_rch_mux),
16333 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
16334 &mi2s_rx_vi_fb_mux),
16335 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
16336 &int4_mi2s_rx_vi_fb_mono_ch_mux),
16337 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
16338 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
16339
16340 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
16341 &voc_ext_ec_mux),
16342 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
16343 &ext_ec_ref_mux_ul1),
16344 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
16345 &ext_ec_ref_mux_ul2),
16346 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
16347 &ext_ec_ref_mux_ul3),
16348 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
16349 &ext_ec_ref_mux_ul4),
16350 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
16351 &ext_ec_ref_mux_ul5),
16352 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
16353 &ext_ec_ref_mux_ul6),
16354 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
16355 &ext_ec_ref_mux_ul8),
16356 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
16357 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053016358 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
16359 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053016360 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
16361 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016362 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
16363 &ext_ec_ref_mux_ul17),
16364 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
16365 &ext_ec_ref_mux_ul18),
16366 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
16367 &ext_ec_ref_mux_ul19),
Meng Wangbe8194e2018-04-25 10:40:01 +080016368 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
16369 &ext_ec_ref_mux_ul28),
16370 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
16371 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016372};
16373
16374static const struct snd_soc_dapm_route intercon[] = {
16375 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16376 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16377 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16378 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16379 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16380 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16381 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16382 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16383 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16384 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16385 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16386 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16387 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16388 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16389 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16390 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16391 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
16392
16393 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16394 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16395 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16396 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16397 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16398 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16399 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16400 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16401 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16402 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16403 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16404 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16405 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16406 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16407 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16408 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16409 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
16410
16411 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16412 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16413 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16414 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16415 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16416 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16417 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16418 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16419 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16420 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16421 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16422 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16423 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16424 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16425 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16426 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16427 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
16428
16429 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16430 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16431 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16432 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16433 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16434 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16435 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16436 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16437 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16438 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16439 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16440 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16441 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16442 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16443 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16444 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16445 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
16446
16447 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16448 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16449 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16450 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16451 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16452 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16453 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16454 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16455 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16456 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16457 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16458 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16459 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16460 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16461 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16462 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16463 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
16464
16465 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
16466 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
16467 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
16468 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
16469 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
16470 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
16471 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
16472 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
16473 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
16474 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
16475 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
16476 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
16477 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
16478 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
16479 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
16480 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
16481 {"HDMI", NULL, "HDMI Mixer"},
16482
16483 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
16484 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
16485 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
16486 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
16487 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
16488 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
16489 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
16490 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
16491 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
16492 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
16493 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
16494 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
16495 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
16496 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
16497 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
16498 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
16499 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
16500
16501 {"SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16502 {"SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16503 {"SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16504 {"SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16505 {"SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16506 {"SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16507 {"SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16508 {"SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16509 {"SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16510 {"SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16511 {"SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16512 {"SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16513 {"SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16514 {"SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16515 {"SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16516 {"SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16517 {"SPDIF_RX", NULL, "SPDIF_RX Audio Mixer"},
16518
16519 /* incall */
16520 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
16521 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
16522 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
16523 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
16524 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
16525 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
16526 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
16527 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
16528 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
16529 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
16530 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16531 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16532 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16533 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16534 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
16535
16536 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16537 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16538 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16539 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16540 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16541 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16542 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16543 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16544 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16545 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16546 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16547 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16548 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16549 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16550 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16551 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16552 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
16553
16554 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16555 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16556 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16557 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16558 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16559 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16560 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16561 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16562 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16563 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16564 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16565 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16566 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16567 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16568 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16569 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16570 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
16571
16572 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16573 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16574 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16575 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16576 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16577 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16578 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16579 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16580 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16581 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16582 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16583 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16584 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16585 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16586 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16587 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16588 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
16589
16590 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
16591 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
16592 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
16593 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
16594 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
16595 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
16596 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
16597 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
16598 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
16599 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
16600 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
16601 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
16602 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16603 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16604 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16605 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016606 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16607 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016608 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16609 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16610 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16611 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16612 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16613 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016614 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16615 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016616 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016617 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16618 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16619 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16620 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16621 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16622 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016623 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016624 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
16625 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
16626 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016627 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
16628 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16629 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053016630 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053016631 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016632 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
16633 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053016634 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016635 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16636 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16637 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16638 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16639 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16640 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16641 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16642 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16643 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16644 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16645 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16646 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16647 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16648 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16649 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16650 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16651 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
16652
16653 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16654 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16655 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16656 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16657 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16658 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16659 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16660 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16661 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16662 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16663 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16664 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16665 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16666 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16667 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16668 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
16669
16670 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16671 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16672 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16673 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16674 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16675 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16676 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16677 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16678 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16679 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16680 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16681 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16682 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16683 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16684 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
16685
16686 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16687 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16688 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16689 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16690 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16691 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16692 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16693 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16694 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16695 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16696 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16697 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16698 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16699 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16700 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
16701
16702 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
16703 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
16704
16705 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16706 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
16707
16708 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16709 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16710 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16711 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16712 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16713 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16714 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16715 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Sachin Mohan Gadagd1b8fbc2018-07-20 15:50:17 +053016716 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016717 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16718 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16719 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16720 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16721 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16722 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16723 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16724 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
16725
16726 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16727 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16728 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16729 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16730 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16731 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16732 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16733 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16734 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16735 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16736 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16737 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16738 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16739 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16740 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16741 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
16742
16743 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16744 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16745 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16746 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16747 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16748 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16749 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16750 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16751 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16752 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16753 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16754 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16755 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16756 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16757 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16758 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
16759
16760 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16761 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16762 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16763 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16764 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16765 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16766 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16767 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16768 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16769 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16770 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16771 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16772 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16773 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16774 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16775 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16776 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16777 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
16778
16779 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16780 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16781 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16782 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16783 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16784 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16785 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16786 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16787 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16788 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16789 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16790 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16791 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16792 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16793 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16794 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16795 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
16796
16797 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
16798 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
16799 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
16800 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
16801 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
16802 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
16803 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
16804 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
16805 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
16806 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
16807 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
16808 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
16809 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
16810 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
16811 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
16812 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
16813 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
16814
16815 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
16816 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
16817 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
16818 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
16819 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
16820 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
16821 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
16822 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
16823 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
16824 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
16825 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
16826 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
16827 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
16828 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
16829 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
16830 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
16831 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
16832
16833 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
16834 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
16835 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
16836 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
16837 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
16838 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
16839 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
16840 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
16841 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
16842 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
16843 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
16844 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
16845 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
16846 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
16847 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
16848 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
16849 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
16850
16851 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16852 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16853 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16854 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16855 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16856 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16857 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16858 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16859 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16860 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16861 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16862 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16863 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16864 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16865 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16866 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16867 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
16868
16869 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16870 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16871 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16872 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16873 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16874 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16875 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16876 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16877 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16878 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16879 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16880 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16881 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16882 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16883 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16884 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16885 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
16886
16887 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
16888 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
16889 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
16890 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
16891 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
16892 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
16893 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
16894 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
16895 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
16896 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
16897 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
16898 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
16899 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
16900 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
16901 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
16902 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
16903 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
16904
16905 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
16906 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
16907 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
16908 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
16909 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
16910 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
16911 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
16912 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
16913 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
16914 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
16915 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
16916 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
16917 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
16918 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
16919 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
16920 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
16921 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
16922
16923 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
16924 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
16925 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
16926 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
16927 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
16928 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
16929 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
16930 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
16931 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
16932 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
16933 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
16934 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
16935 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
16936 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
16937 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
16938 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
16939 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
16940
16941 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16942 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16943 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16944 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16945 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16946 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16947 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16948 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16949 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16950 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16951 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16952 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16953 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16954 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16955 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16956 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16957 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
16958
16959 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16960 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16961 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16962 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16963 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16964 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16965 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16966 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16967 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16968 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16969 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16970 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16971 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16972 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16973 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16974 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16975 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
16976
16977 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16978 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16979 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16980 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16981 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16982 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16983 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16984 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16985 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16986 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16987 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16988 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16989 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16990 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16991 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16992 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16993 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
16994
16995 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
16996 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
16997 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
16998 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
16999 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17000 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17001 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17002 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17003 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17004 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17005 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17006 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17007 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17008 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17009 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17010 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17011 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
17012
17013 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17014 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17015 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17016 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17017 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17018 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17019 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17020 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17021 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17022 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17023 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17024 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17025 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17026 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17027 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17028 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17029 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
17030
17031 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17032 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17033 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17034 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17035 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17036 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17037 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17038 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17039 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17040 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17041 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17042 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17043 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17044 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17045 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17046 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17047 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
17048
17049 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
17050 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
17051 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
17052 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
17053 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
17054 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
17055 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
17056 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
17057 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
17058 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
17059 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
17060 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
17061 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
17062 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
17063 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
17064 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
17065 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
17066
17067 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17068 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17069 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17070 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17071 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17072 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17073 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17074 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17075 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17076 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17077 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17078 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17079 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17080 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17081 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17082 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17083 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
17084 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
17085
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017086 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17087 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17088 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17089 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17090 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17091 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17092 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17093 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17094 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17095 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17096 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17097 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17098 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17099 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17100 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17101 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17102 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
17103
17104 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17105 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17106 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17107 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17108 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17109 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17110 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17111 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17112 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17113 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17114 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17115 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17116 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17117 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17118 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17119 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17120 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
17121 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
17122
17123 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17124 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17125 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17126 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17127 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17128 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17129 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17130 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17131 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17132 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17133 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17134 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17135 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17136 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17137 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17138 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17139 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
17140 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
17141
17142 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17143 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17144 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17145 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17146 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17147 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17148 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17149 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17150 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17151 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17152 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17153 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17154 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17155 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17156 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17157 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17158 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
17159 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
17160
Rohit Kumara5077932017-09-10 22:05:05 +053017161 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17162 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17163 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17164 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17165 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17166 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17167 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17168 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17169 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17170 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17171 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17172 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17173 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17174 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17175 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17176 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17177 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
17178 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
17179
17180 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17181 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17182 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17183 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17184 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17185 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17186 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17187 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17188 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17189 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17190 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17191 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17192 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17193 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17194 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17195 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17196 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
17197
17198 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17199 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17200 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17201 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17202 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17203 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17204 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17205 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17206 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17207 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17208 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17209 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17210 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17211 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17212 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17213 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17214 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
17215 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
17216
17217 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17218 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17219 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17220 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17221 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17222 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17223 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17224 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17225 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17226 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17227 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17228 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17229 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17230 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17231 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17232 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17233 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
17234 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
17235
17236 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17237 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17238 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17239 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17240 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17241 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17242 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17243 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17244 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17245 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17246 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17247 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17248 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17249 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17250 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17251 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17252 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
17253 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
17254
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017255 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
17256 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
17257 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
17258 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
17259 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017260 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017261 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017262 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17263 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17264 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17265 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
17266 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
17267 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17268 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17269 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17270 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17271 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17272 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17273 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17274 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
17275 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
17276 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017277 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017278 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
17279 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
17280 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017281 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017282 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
17283 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017284 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
17285 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
17286 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017287 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017288 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
17289 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
17290 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017291 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017292 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017293 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
17294 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
17295 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017296 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17297 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
17298 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
17299 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
17300 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17301 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17302 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17303 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17304 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17305 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17306 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017307 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017308 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17309 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17310 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017311 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017312 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017313 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17314 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17315 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017316 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017317 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017318 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17319 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17320 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17321 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17322 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017323 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17324 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
17325 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
17326 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017327 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017328
17329 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17330 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17331 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17332 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17333 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17334 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17335 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17336 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17337 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17338 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17339 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17340 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17341 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17342 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17343 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17344 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017345 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017346 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17347 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17348 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17349 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017350
17351 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17352 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17353 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17354 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17355 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17356 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17357 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17358 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17359 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17360 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17361 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17362 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17363 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17364 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17365 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17366 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017367 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017368 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17369 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17370 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17371 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017372
17373 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17374 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17375 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17376 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17377 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17378 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17379 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17380 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17381 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17382 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17383 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17384 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17385 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17386 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17387 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17388 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017389 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017390 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17391 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17392 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17393 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017394
17395 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17396 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17397 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17398 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17399 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17400 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17401 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17402 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17403 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17404 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17405 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17406 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17407 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17408 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17409 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17410 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017411 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017412 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17413 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17414 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17415 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017416
17417 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17418 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17419 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17420 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17421 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17422 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17423 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17424 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17425 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17426 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17427 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17428 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17429 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17430 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17431 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17432 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017433 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017434 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17435 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17436 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17437 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017438
17439 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17440 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17441 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17442 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17443 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17444 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17445 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17446 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17447 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17448 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17449 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17450 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17451 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17452 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17453 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17454 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017455 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017456 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17457 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17458 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17459 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017460
17461 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17462 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17463 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17464 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17465 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17466 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17467 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17468 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17469 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17470 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17471 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17472 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17473 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17474 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17475 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17476 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017477 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017478 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17479 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17480 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17481 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017482
17483 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17484 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17485 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17486 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17487 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17488 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17489 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17490 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053017491 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17492 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17493 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17494 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017495 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017496
Laxminath Kasam38070be2017-08-17 18:21:59 +053017497 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17498 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17499 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17500 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17501 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17502 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17503 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17504 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017505 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17506 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17507 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17508 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017509 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017510 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17511 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17512 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17513 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17514 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17515 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17516 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17517 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17518 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17519 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17520 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17521 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17522 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17523 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17524 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17525 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053017526 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17527 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17528 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17529 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017530
17531 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17532 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17533 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17534 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17535 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17536 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017537 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017538
Asish Bhattacharya34504582017-08-08 12:55:01 +053017539 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17540 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17541 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17542 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17543 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17544 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17545 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17546 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17547 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17548 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17549 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17550 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17551 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17552 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17553 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17554 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
17555 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17556
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017557 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17558 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17559 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17560 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17561 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17562 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17563 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17564 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17565 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17566 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17567 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17568 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17569 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17570 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17571 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17572 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17573 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
17574 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
17575
17576 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17577 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17578 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17579 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17580 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17581 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17582 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17583 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17584 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17585 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17586 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17587 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17588 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17589 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17590 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17591 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17592 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
17593 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
17594
17595 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17596 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17597 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17598 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17599 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17600 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17601 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17602 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17603 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17604 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17605 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17606 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17607 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17608 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17609 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17610 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17611 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
17612
17613 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17614 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17615 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17616 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17617 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17618 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17619 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17620 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17621 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17622 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17623 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17624 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17625 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17626 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17627 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17628 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17629 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
17630
17631 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17632 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17633 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017634 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017635 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17636 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17637 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017638 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17639 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017640 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17641 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017642 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017643 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17644 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017645 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017646 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17647 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17648 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017649 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17650 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017651 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17652 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17653 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17654
17655 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
17656 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
17657 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017658 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017659 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
17660 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
17661 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017662 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
17663 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017664 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
17665 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017666 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017667 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
17668 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17669 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
17670 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
17671 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
17672 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
17673 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
17674 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
17675 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017676 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017677 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017678 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
17679 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
17680 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
17681 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017682 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
17683 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017684
17685 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17686 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17687 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17688 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17689 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17690 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17691 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17692 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17693 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17694 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17695 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17696 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17697 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17698 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17699 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17700 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17701 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
17702
17703 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17704 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17705 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17706 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17707 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17708 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17709 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17710 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17711 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17712 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17713 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17714 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17715 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17716 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17717 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17718 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17719 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
17720
17721 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17722 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17723 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17724 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17725 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17726 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17727 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17728 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17729 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17730 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17731 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17732 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17733 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17734 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17735 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17736 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17737 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
17738
17739 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17740 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17741 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17742 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17743 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17744 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17745 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17746 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17747 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17748 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17749 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17750 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17751 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17752 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17753 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17754 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17755 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
17756
Rohit Kumara5077932017-09-10 22:05:05 +053017757 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17758 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17759 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17760 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17761 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17762 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17763 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17764 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17765 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17766 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17767 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17768 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17769 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17770 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17771 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17772 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17773 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
17774
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017775 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
17776 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17777 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17778 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17779 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17780 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
17781
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017782 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
17783 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17784 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17785 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
17786
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017787 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
17788 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17789 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17790 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17791 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17792 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
17793
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017794 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
17795 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017796 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17797 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17798 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17799 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
17800
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017801 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
17802 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017803 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17804 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17805 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17806 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
17807
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017808 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
17809 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017810 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17811 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17812 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17813 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
17814
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080017815 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
17816 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080017817 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17818 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17819 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17820 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
17821
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017822 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
17823 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17824 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17825 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17826 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017827 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
17828
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017829 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17830 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17831 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17832 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17833 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17834 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
17835
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017836 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17837 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017838 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17839 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17840 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17841 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
17842
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017843 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17844 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017845 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17846 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17847 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17848 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
17849
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017850 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17851 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017852 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17853 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17854 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17855 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
17856
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017857 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17858 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017859 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17860 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17861 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17862 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
17863
Rohit Kumara5077932017-09-10 22:05:05 +053017864 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17865 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053017866 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17867 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17868 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17869 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
17870
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017871 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
17872 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17873 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17874 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17875 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17876 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
17877 {"HDMI", NULL, "HDMI_DL_HL"},
17878
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017879 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017880 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17881 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17882 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080017883 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017884 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
17885
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017886 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017887 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17888 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17889 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17890 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17891 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
17892
17893 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
17894 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17895 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17896 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17897 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17898 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
17899
17900 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
17901 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17902 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17903 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17904 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17905 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
17906
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017907 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017908 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17909 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17910 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17911 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17912 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
17913
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017914 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017915 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17916 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17917 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17918 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
17919
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017920 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017921 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17922 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17923 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17924 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
17925
Raja Mallik321d5712018-05-04 17:22:11 +053017926 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017927 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17928 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17929 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17930 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
17931 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17932 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17933 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17934 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
17935
Raja Mallik321d5712018-05-04 17:22:11 +053017936 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017937 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17938 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17939 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17940 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
17941 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17942 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17943 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17944 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
17945
Raja Mallik321d5712018-05-04 17:22:11 +053017946 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017947 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17948 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17949 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17950 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
17951 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17952 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17953 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17954 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
17955
Raja Mallik321d5712018-05-04 17:22:11 +053017956 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017957 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17958 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17959 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17960 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
17961 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17962 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17963 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17964 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
17965
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017966 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17967 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
17968
17969 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17970 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17971 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17972 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017973 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017974 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017975 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017976 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
17977 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
17978
17979 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17980 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17981 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17982 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17983 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Bala Kishore Pati1a044712018-10-03 12:12:36 +053017984 {"AUDIO_REF_EC_UL1 MUX", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017985 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17986 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
17987 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
17988 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
17989 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17990
17991 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17992 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17993 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17994 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17995
17996 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17997 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17998 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17999 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18000
18001 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18002 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18003 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18004 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18005
18006 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18007 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18008 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18009 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18010
18011 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18012 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18013 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18014 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18015
18016 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18017 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18018 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18019 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Bala Kishore Pati1a044712018-10-03 12:12:36 +053018020 {"AUDIO_REF_EC_UL8 MUX", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018021
18022 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18023 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18024 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18025 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18026
Laxminath Kasam38070be2017-08-17 18:21:59 +053018027 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18028 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18029 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18030 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18031 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
18032 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18033 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
18034 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
18035 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
18036 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070018037
18038 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18039 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18040 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18041 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18042
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018043 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18044 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18045 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18046 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18047
18048 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18049 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18050 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18051 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18052
18053 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18054 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18055 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18056 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18057
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053018058 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18059 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18060 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18061 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18062
18063 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18064 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18065 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18066 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080018067
18068 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18069 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18070 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18071 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18072 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18073 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18074 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18075 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18076
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018077 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
18078 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
18079 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
18080 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
18081 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
18082 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
18083 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
18084 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053018085 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053018086 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018087 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
18088 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
18089 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053018090 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
18091 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018092
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018093 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
18094 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
18095 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
18096 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
18097 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
18098 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
18099 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
18100 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
18101 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
18102 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
18103 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
18104 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
18105 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
18106 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
18107 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018108 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018109 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Raja Mallik321d5712018-05-04 17:22:11 +053018110 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Aditya Bavanari769c3102018-02-23 16:34:40 +053018111 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
18112 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018113 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
18114
18115 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
18116 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
18117 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
18118 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
18119 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
18120 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
18121 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
18122 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
18123 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
18124 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
18125 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
18126 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
18127 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
18128 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
18129 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018130 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari769c3102018-02-23 16:34:40 +053018131 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
18132 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Raja Mallik321d5712018-05-04 17:22:11 +053018133 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018134 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
18135
18136 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
18137 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
18138 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
18139 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
18140 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
18141 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
18142 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
18143 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
18144 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
18145 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
18146 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
18147 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
18148 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
18149 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018150 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018151 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Raja Mallik321d5712018-05-04 17:22:11 +053018152 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018153 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
18154
18155 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
18156 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
18157 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
18158 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
18159 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
18160 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
18161 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
18162 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
18163 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
18164 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
18165 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
18166 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
18167 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
18168 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
18169 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
18170
18171 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18172 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18173 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18174 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18175 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18176 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18177 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18178 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018179 {"LSM1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18180 {"LSM1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018181 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
18182
18183 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18184 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18185 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18186 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18187 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18188 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18189 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18190 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018191 {"LSM2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18192 {"LSM2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018193 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
18194
18195
18196 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18197 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18198 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18199 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18200 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18201 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18202 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18203 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018204 {"LSM3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18205 {"LSM3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018206 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
18207
18208
18209 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18210 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18211 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18212 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18213 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18214 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18215 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18216 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018217 {"LSM4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18218 {"LSM4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018219 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
18220
18221 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18222 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18223 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18224 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18225 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18226 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18227 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18228 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018229 {"LSM5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18230 {"LSM5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018231 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
18232
18233 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18234 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18235 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18236 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18237 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18238 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018239 {"LSM6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18240 {"LSM6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018241 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
18242
18243 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18244 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18245 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18246 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18247 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18248 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018249 {"LSM7 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18250 {"LSM7 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018251 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
18252
18253 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18254 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18255 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18256 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18257 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18258 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018259 {"LSM8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18260 {"LSM8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018261 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
18262
18263
18264 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
18265 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
18266 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
18267 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
18268 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
18269 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
18270 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
18271 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
18272 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
18273 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
18274 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018275 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018276 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
18277 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
18278 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
18279 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
18280 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
18281 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
18282
18283 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
18284 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
18285 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
18286 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
18287 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
18288 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
18289 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
18290 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
18291 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
18292 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
18293 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
18294 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080018295 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
18296 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018297 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018298 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018299 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018300 {"MI2S_RX", NULL, "MI2S_DL_HL"},
18301 {"MI2S_UL_HL", NULL, "MI2S_TX"},
18302 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
18303 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
18304
18305 /* connect to INT4_MI2S_DL_HL since same pcm_id */
18306 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
18307 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
18308 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
18309 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
18310 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
18311 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
18312 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
18313 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
18314 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
18315 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
18316
18317 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
18318 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053018319 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
18320 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018321 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
18322 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
18323 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
18324 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
18325 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
18326 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
18327 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
18328 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
18329 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
18330 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
18331
18332 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
18333 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
18334 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
18335 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
18336 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
18337 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
18338 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
18339 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
18340 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
18341 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
18342 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
18343 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
18344 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
18345 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
18346 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
18347 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
18348 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
18349 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
18350 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
18351 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
18352 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
18353 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
18354 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
18355 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
18356 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
18357 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
18358 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
18359 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
18360 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
18361 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
18362 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
18363 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053018364 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
18365 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
18366 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
18367 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
18368 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
18369 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
18370 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
18371 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018372
18373 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18374 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18375 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18376 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18377 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18378 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18379 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18380 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18381 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18382 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18383 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18384 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18385 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18386 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18387 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18388 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018389 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18390 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18391 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18392 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018393 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
18394
18395 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18396 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18397 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18398 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18399 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18400 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18401 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18402 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18403 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18404 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18405 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18406 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18407 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18408 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18409 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18410 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018411 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18412 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18413 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18414 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018415 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
18416
18417 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18418 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18419 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18420 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18421 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18422 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18423 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18424 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18425 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18426 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18427 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18428 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18429 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18430 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18431 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18432 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018433 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18434 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18435 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18436 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018437 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
18438
18439 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18440 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18441 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18442 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18443 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18444 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18445 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18446 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18447 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18448 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18449 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18450 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18451 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18452 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18453 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18454 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018455 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18456 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18457 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18458 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018459 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
18460
18461 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18462 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18463 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18464 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18465 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18466 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18467 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18468 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18469 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18470 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18471 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18472 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18473 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18474 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18475 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18476 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018477 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18478 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18479 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18480 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018481 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
18482
18483 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18484 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18485 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18486 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18487 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18488 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18489 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18490 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18491 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18492 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18493 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18494 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18495 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18496 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18497 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18498 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018499 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18500 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18501 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18502 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018503 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
18504
18505 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18506 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18507 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18508 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18509 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18510 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18511 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18512 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18513 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18514 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18515 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18516 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18517 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18518 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18519 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18520 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018521 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18522 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18523 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18524 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018525 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
18526
18527 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18528 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18529 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18530 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18531 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18532 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18533 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18534 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18535 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18536 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18537 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18538 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18539 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18540 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18541 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18542 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018543 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18544 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18545 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18546 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018547 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
18548
18549 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18550 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18551 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18552 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18553 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18554 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18555 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18556 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18557 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18558 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18559 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18560 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18561 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18562 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18563 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18564 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018565 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18566 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18567 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18568 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018569 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
18570
18571 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18572 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18573 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18574 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18575 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18576 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18577 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18578 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18579 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18580 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18581 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18582 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18583 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18584 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18585 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18586 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018587 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18588 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18589 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18590 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018591 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
18592
18593 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18594 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18595 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18596 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18597 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18598 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18599 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18600 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18601 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18602 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18603 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18604 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18605 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18606 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18607 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18608 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018609 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18610 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18611 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18612 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018613 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
18614
18615 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18616 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18617 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18618 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18619 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18620 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18621 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18622 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18623 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18624 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18625 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18626 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18627 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18628 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18629 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18630 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018631 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18632 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18633 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18634 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018635 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
18636
18637 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18638 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18639 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18640 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18641 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18642 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18643 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18644 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18645 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18646 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18647 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18648 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18649 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18650 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18651 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18652 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018653 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18654 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18655 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18656 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018657 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
18658
18659 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18660 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18661 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18662 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18663 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18664 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18665 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18666 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18667 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18668 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18669 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18670 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18671 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18672 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18673 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18674 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018675 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18676 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18677 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18678 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018679 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
18680
18681 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18682 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18683 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18684 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18685 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18686 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18687 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18688 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18689 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18690 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18691 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18692 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18693 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18694 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18695 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18696 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018697 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18698 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18699 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18700 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018701 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
18702
18703 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18704 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18705 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18706 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18707 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18708 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18709 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18710 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18711 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18712 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18713 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18714 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18715 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18716 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18717 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18718 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018719 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18720 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18721 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18722 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018723 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
18724
Rohit Kumara5077932017-09-10 22:05:05 +053018725 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18726 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18727 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18728 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18729 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18730 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18731 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18732 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18733 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18734 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18735 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18736 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18737 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18738 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18739 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18740 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18741 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18742 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18743 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18744 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018745 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018746
18747 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18748 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18749 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18750 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18751 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18752 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18753 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18754 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18755 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18756 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18757 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18758 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18759 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18760 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18761 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18762 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18763 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18764 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18765 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18766 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018767 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018768
18769 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18770 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18771 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18772 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18773 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18774 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18775 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18776 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18777 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18778 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18779 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18780 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18781 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18782 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18783 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18784 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18785 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18786 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18787 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18788 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018789 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018790
18791 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18792 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18793 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18794 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18795 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18796 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18797 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18798 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18799 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18800 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18801 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18802 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18803 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18804 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18805 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18806 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18807 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18808 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18809 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18810 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018811 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018812
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018813 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18814 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18815 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18816 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018817 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018818 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
18819 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18820 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18821 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18822 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18823 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
18824
18825 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18826 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18827 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18828 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018829 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018830 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
18831 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18832 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18833 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18834 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18835 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
18836
18837 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18838 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18839 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18840 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18841 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18842 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18843 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18844 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
18845 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018846 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018847 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
18848 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18849 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18850 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18851 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018852 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018853 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18854 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
18855 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18856 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18857 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
18858 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
18859 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
18860 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
18861 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
18862 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
18863
18864
18865 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18866 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18867 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18868 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18869 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018870 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018871 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
18872
18873 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18874 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18875 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018876 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018877 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
18878
18879 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18880 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
18881 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18882 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
18883
18884 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18885 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
18886 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18887 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
18888
Rohit Kumara5077932017-09-10 22:05:05 +053018889 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18890 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
18891 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18892 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
18893
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018894 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
18895 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18896 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18897 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
18898 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18899 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18900 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
18901 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018902 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018903 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
18904 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18905 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18906 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
18907 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18908 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18909 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
18910 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18911 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18912 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
18913 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
18914
18915 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
18916 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18917 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
18918 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18919 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18920 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
18921 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18922 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18923 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
18924 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18925 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18926 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
18927
18928 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
18929 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18930 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
18931 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18932 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18933 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
18934 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18935 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18936 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
18937 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18938 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18939 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
18940
kunleizdf5a00a2017-11-27 15:27:36 +080018941 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18942 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018943 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080018944
18945 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18946 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018947 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080018948
18949 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18950 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018951 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
18952
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018953 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
18954 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018955 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18956 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18957 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18958 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
18959
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018960 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
18961 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018962 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18963 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18964 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18965 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
18966
18967 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18968 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18969 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18970 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
18971 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18972 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18973 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
18974 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
18975 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
18976 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
18977 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
18978 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
18979 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
18980
18981 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18982 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18983 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18984 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18985 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18986 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18987 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18988 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
18989 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18990 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18991 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18992 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18993 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
18994
18995 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
18996 {"HDMI", NULL, "HDMI_RX Port Mixer"},
18997
18998 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
18999 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
19000
19001 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19002 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
19003
19004 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19005 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19006 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
19007
19008 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19009 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19010 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19011 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019012 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019013 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19014 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19015 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19016 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080019017 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019018 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
19019
19020 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19021 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19022 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19023 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019024 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019025 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19026 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19027 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080019028 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019029 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
19030
19031 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19032 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19033 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19034 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019035 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019036 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19037 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19038 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
19039
19040 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19041 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19042 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19043 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019044 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019045 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19046 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19047 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19048 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19049 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
19050
Rohit Kumara5077932017-09-10 22:05:05 +053019051 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19052 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19053 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19054 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19055 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
19056 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19057 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19058 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
19059
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019060 /* Backend Enablement */
19061
19062 {"BE_OUT", NULL, "PRI_I2S_RX"},
19063 {"BE_OUT", NULL, "SEC_I2S_RX"},
19064 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
19065 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
19066 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
19067 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19068 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
19069 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
19070 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
19071 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
19072 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
19073 {"BE_OUT", NULL, "USB_AUDIO_RX"},
19074 {"BE_OUT", NULL, "HDMI"},
19075 {"BE_OUT", NULL, "DISPLAY_PORT"},
19076 {"BE_OUT", NULL, "SPDIF_RX"},
19077 {"BE_OUT", NULL, "MI2S_RX"},
19078 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
19079 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
19080 {"BE_OUT", NULL, "TERT_MI2S_RX"},
19081 {"BE_OUT", NULL, "SEC_MI2S_RX"},
19082 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
19083 {"BE_OUT", NULL, "PRI_MI2S_RX"},
19084 {"BE_OUT", NULL, "INT0_MI2S_RX"},
19085 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019086 {"BE_OUT", NULL, "INT2_MI2S_RX"},
19087 {"BE_OUT", NULL, "INT3_MI2S_RX"},
19088 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019089 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
19090 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
19091 {"BE_OUT", NULL, "INT_FM_RX"},
19092 {"BE_OUT", NULL, "PCM_RX"},
19093 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19094 {"BE_OUT", NULL, "AUX_PCM_RX"},
19095 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
19096 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
19097 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019098 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019099 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
19100 {"BE_OUT", NULL, "INT_FM_RX"},
19101 {"BE_OUT", NULL, "PCM_RX"},
19102 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19103 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
19104 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
19105 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
19106 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
19107 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
19108 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
19109 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
19110 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
19111 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
19112 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
19113 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
19114 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
19115 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
19116 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
19117 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
19118 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
19119 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
19120 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
19121 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019122 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
19123 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
19124 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
19125 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019126
19127 {"PRI_I2S_TX", NULL, "BE_IN"},
19128 {"MI2S_TX", NULL, "BE_IN"},
19129 {"QUAT_MI2S_TX", NULL, "BE_IN"},
19130 {"QUIN_MI2S_TX", NULL, "BE_IN"},
19131 {"PRI_MI2S_TX", NULL, "BE_IN"},
19132 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019133 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019134 {"INT2_MI2S_TX", NULL, "BE_IN"},
19135 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019136 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019137 {"INT5_MI2S_TX", NULL, "BE_IN"},
19138 {"SEC_MI2S_TX", NULL, "BE_IN"},
19139 {"SENARY_MI2S_TX", NULL, "BE_IN" },
19140 {"SLIMBUS_0_TX", NULL, "BE_IN" },
19141 {"SLIMBUS_1_TX", NULL, "BE_IN" },
19142 {"SLIMBUS_3_TX", NULL, "BE_IN" },
19143 {"SLIMBUS_4_TX", NULL, "BE_IN" },
19144 {"SLIMBUS_5_TX", NULL, "BE_IN" },
19145 {"SLIMBUS_6_TX", NULL, "BE_IN" },
19146 {"SLIMBUS_7_TX", NULL, "BE_IN" },
19147 {"SLIMBUS_8_TX", NULL, "BE_IN" },
19148 {"USB_AUDIO_TX", NULL, "BE_IN" },
19149 {"INT_BT_SCO_TX", NULL, "BE_IN"},
19150 {"INT_FM_TX", NULL, "BE_IN"},
19151 {"PCM_TX", NULL, "BE_IN"},
19152 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19153 {"BE_OUT", NULL, "STUB_RX"},
19154 {"STUB_TX", NULL, "BE_IN"},
19155 {"STUB_1_TX", NULL, "BE_IN"},
19156 {"BE_OUT", NULL, "AUX_PCM_RX"},
19157 {"AUX_PCM_TX", NULL, "BE_IN"},
19158 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
19159 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
19160 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053019161 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019162 {"INCALL_RECORD_TX", NULL, "BE_IN"},
19163 {"INCALL_RECORD_RX", NULL, "BE_IN"},
19164 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
19165 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
19166 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
19167 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
19168 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
19169 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
19170 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
19171 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
19172 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
19173 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
19174 {"PRI_TDM_TX_0", NULL, "BE_IN"},
19175 {"PRI_TDM_TX_1", NULL, "BE_IN"},
19176 {"PRI_TDM_TX_2", NULL, "BE_IN"},
19177 {"PRI_TDM_TX_3", NULL, "BE_IN"},
19178 {"SEC_TDM_TX_0", NULL, "BE_IN"},
19179 {"SEC_TDM_TX_1", NULL, "BE_IN"},
19180 {"SEC_TDM_TX_2", NULL, "BE_IN"},
19181 {"SEC_TDM_TX_3", NULL, "BE_IN"},
19182 {"TERT_TDM_TX_0", NULL, "BE_IN"},
19183 {"TERT_TDM_TX_1", NULL, "BE_IN"},
19184 {"TERT_TDM_TX_2", NULL, "BE_IN"},
19185 {"TERT_TDM_TX_3", NULL, "BE_IN"},
19186 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
19187 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
19188 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
19189 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Raja Mallik425e1d32018-05-20 19:21:10 +053019190 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053019191 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
19192 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
19193 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
19194 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019195};
19196
19197static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
19198 struct snd_pcm_hw_params *params)
19199{
19200 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19201 unsigned int be_id = rtd->dai_link->id;
19202
19203 if (be_id >= MSM_BACKEND_DAI_MAX) {
19204 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19205 return -EINVAL;
19206 }
19207
19208 mutex_lock(&routing_lock);
19209 msm_bedais[be_id].sample_rate = params_rate(params);
19210 msm_bedais[be_id].channel = params_channels(params);
19211 msm_bedais[be_id].format = params_format(params);
19212 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
19213 __func__, msm_bedais[be_id].sample_rate,
19214 msm_bedais[be_id].format, be_id);
19215 mutex_unlock(&routing_lock);
19216 return 0;
19217}
19218
19219static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
19220{
19221 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19222 unsigned int be_id = rtd->dai_link->id;
19223 int i, session_type, path_type, topology;
19224 struct msm_pcm_routing_bdai_data *bedai;
19225 struct msm_pcm_routing_fdai_data *fdai;
19226
19227 pr_debug("%s: substream->pcm->id:%s\n",
19228 __func__, substream->pcm->id);
19229
19230 if (be_id >= MSM_BACKEND_DAI_MAX) {
19231 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19232 return -EINVAL;
19233 }
19234
19235 bedai = &msm_bedais[be_id];
19236 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
19237 0 : 1);
19238 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
19239 path_type = ADM_PATH_PLAYBACK;
19240 else
19241 path_type = ADM_PATH_LIVE_REC;
19242
19243 mutex_lock(&routing_lock);
19244 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19245 if (!is_mm_lsm_fe_id(i))
19246 continue;
19247 fdai = &fe_dai_map[i][session_type];
19248 if (fdai->strm_id != INVALID_SESSION) {
19249 int idx;
19250 int port_id;
19251 unsigned long copp =
19252 session_copp_map[i][session_type][be_id];
19253 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
19254 if (test_bit(idx, &copp))
19255 break;
19256 fdai->be_srate = bedai->sample_rate;
Sachin Mohan Gadag11b247f2018-09-06 19:27:42 +053019257 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019258 topology = adm_get_topology_for_port_copp_idx(port_id,
19259 idx);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019260 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019261 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
19262 __func__, copp, i, session_type, be_id,
19263 topology);
19264 clear_bit(idx,
19265 &session_copp_map[i][session_type][be_id]);
19266 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
19267 (bedai->passthr_mode[i] == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019268 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019269 topology);
19270 }
19271 }
19272
19273 bedai->active = 0;
19274 bedai->sample_rate = 0;
19275 bedai->channel = 0;
19276 for (i = 0; i < MSM_FRONTEND_DAI_MAX; i++) {
19277 if (bedai->passthr_mode[i] != LISTEN)
19278 bedai->passthr_mode[i] = LEGACY_PCM;
19279 }
19280 mutex_unlock(&routing_lock);
19281
19282 return 0;
19283}
19284
19285static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
19286{
19287 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19288 unsigned int be_id = rtd->dai_link->id;
19289 int i, path_type, topology;
19290 int session_type = INVALID_SESSION;
19291 struct msm_pcm_routing_bdai_data *bedai;
19292 u32 channels, sample_rate;
19293 uint16_t bits_per_sample = 16, voc_path_type;
19294 struct msm_pcm_routing_fdai_data *fdai;
19295 u32 session_id;
19296 struct media_format_info voc_be_media_format;
19297 bool is_lsm;
19298
19299 pr_debug("%s: substream->pcm->id:%s\n",
19300 __func__, substream->pcm->id);
19301
19302 if (be_id >= MSM_BACKEND_DAI_MAX) {
19303 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19304 return -EINVAL;
19305 }
19306
19307 bedai = &msm_bedais[be_id];
19308
19309 mutex_lock(&routing_lock);
19310 if (bedai->active == 1)
19311 goto done; /* Ignore prepare if back-end already active */
19312
19313 /* AFE port is not active at this point. However, still
19314 * go ahead setting active flag under the notion that
19315 * QDSP6 is able to handle ADM starting before AFE port
19316 * is started.
19317 */
19318 bedai->active = 1;
19319
19320 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19321 if (!(is_mm_lsm_fe_id(i) &&
19322 route_check_fe_id_adm_support(i)))
19323 continue;
19324
19325 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
19326 if (bedai->passthr_mode[i] != LEGACY_PCM)
19327 path_type = ADM_PATH_COMPRESSED_RX;
19328 else
19329 path_type = ADM_PATH_PLAYBACK;
19330 session_type = SESSION_TYPE_RX;
19331 } else {
19332 path_type = ADM_PATH_LIVE_REC;
19333 session_type = SESSION_TYPE_TX;
19334 }
19335
19336 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
19337 (i <= MSM_FRONTEND_DAI_LSM8);
19338 fdai = &fe_dai_map[i][session_type];
19339 if (fdai->strm_id != INVALID_SESSION) {
19340 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019341 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019342
19343 if (session_type == SESSION_TYPE_TX &&
19344 fdai->be_srate &&
19345 (fdai->be_srate != bedai->sample_rate)) {
19346 pr_debug("%s: flush strm %d diff BE rates\n",
19347 __func__,
19348 fdai->strm_id);
19349
19350 if (fdai->event_info.event_func)
19351 fdai->event_info.event_func(
19352 MSM_PCM_RT_EVT_BUF_RECFG,
19353 fdai->event_info.priv_data);
19354 fdai->be_srate = 0; /* might not need it */
19355 }
19356 bits_per_sample = msm_routing_get_bit_width(
19357 bedai->format);
19358
19359 app_type =
19360 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
19361 if (app_type && is_lsm) {
19362 app_type_idx =
19363 msm_pcm_routing_get_lsm_app_type_idx(app_type);
19364 sample_rate =
19365 fe_dai_app_type_cfg[i][session_type][be_id]
19366 .sample_rate;
19367 bits_per_sample =
19368 lsm_app_type_cfg[app_type_idx].bit_width;
19369 } else if (app_type) {
19370 app_type_idx =
19371 msm_pcm_routing_get_app_type_idx(app_type);
19372 sample_rate =
19373 fe_dai_app_type_cfg[i][session_type]
19374 [be_id].sample_rate;
19375 bits_per_sample =
19376 app_type_cfg[app_type_idx].bit_width;
19377 } else
19378 sample_rate = bedai->sample_rate;
19379 /*
19380 * check if ADM needs to be configured with different
19381 * channel mapping than backend
19382 */
19383 if (!bedai->adm_override_ch)
19384 channels = bedai->channel;
19385 else
19386 channels = bedai->adm_override_ch;
19387 acdb_dev_id =
19388 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
19389 topology = msm_routing_get_adm_topology(i, session_type,
19390 be_id);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019391 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019392 sample_rate, channels, topology,
19393 fdai->perf_mode, bits_per_sample,
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019394 app_type, acdb_dev_id,
19395 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019396 if ((copp_idx < 0) ||
19397 (copp_idx >= MAX_COPPS_PER_PORT)) {
19398 pr_err("%s: adm open failed\n", __func__);
19399 mutex_unlock(&routing_lock);
19400 return -EINVAL;
19401 }
19402 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
19403 __func__, i, session_type, be_id);
19404 set_bit(copp_idx,
19405 &session_copp_map[i][session_type][be_id]);
19406
19407 if (msm_is_resample_needed(
19408 sample_rate,
19409 bedai->sample_rate))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019410 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019411 bedai->sample_rate);
19412
19413 msm_pcm_routing_build_matrix(i, session_type, path_type,
19414 fdai->perf_mode,
19415 bedai->passthr_mode[i]);
19416 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
19417 (bedai->passthr_mode[i] == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019418 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019419 topology, channels);
19420 }
19421 }
19422
19423 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19424 session_id = msm_pcm_routing_get_voc_sessionid(i);
19425 if (session_id) {
19426 pr_debug("%s voice session_id: 0x%x\n", __func__,
19427 session_id);
19428
19429 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
19430 voc_path_type = RX_PATH;
19431 else
19432 voc_path_type = TX_PATH;
19433
19434 voc_set_route_flag(session_id, voc_path_type, 1);
19435
19436 memset(&voc_be_media_format, 0,
19437 sizeof(struct media_format_info));
19438
19439 voc_be_media_format.port_id = bedai->port_id;
19440 voc_be_media_format.num_channels = bedai->channel;
19441 voc_be_media_format.sample_rate = bedai->sample_rate;
19442 voc_be_media_format.bits_per_sample = bedai->format;
19443 /* Defaulting this to 1 for voice call usecases */
19444 voc_be_media_format.channel_mapping[0] = 1;
19445
19446 voc_set_device_config(session_id, voc_path_type,
19447 &voc_be_media_format);
19448
19449 if (voc_get_route_flag(session_id, RX_PATH) &&
19450 voc_get_route_flag(session_id, TX_PATH))
19451 voc_enable_device(session_id);
19452 }
19453 }
19454
19455 /* Check if backend is an external ec ref port and set as needed */
19456 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
19457
19458 memset(&voc_be_media_format, 0,
19459 sizeof(struct media_format_info));
19460
19461 /* Get format info for ec ref port from msm_bedais[] */
19462 voc_be_media_format.port_id = bedai->port_id;
19463 voc_be_media_format.num_channels = bedai->channel;
19464 voc_be_media_format.bits_per_sample = bedai->format;
19465 voc_be_media_format.sample_rate = bedai->sample_rate;
19466 /* Defaulting this to 1 for voice call usecases */
19467 voc_be_media_format.channel_mapping[0] = 1;
19468 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
19469 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
19470 __func__, voc_be_media_format.port_id,
19471 voc_be_media_format.num_channels,
19472 voc_be_media_format.bits_per_sample,
19473 voc_be_media_format.sample_rate);
19474 }
19475
19476done:
19477 mutex_unlock(&routing_lock);
19478
19479 return 0;
19480}
19481
19482static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
19483 int fe_id)
19484{
19485 int index, topo_id, be_idx;
19486 unsigned long pp_config = 0;
19487 bool mute_on;
19488 int latency;
19489 bool compr_passthr_mode = true;
19490
19491 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
19492
19493 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
19494 pr_err("%s: Device pp params on invalid port %d\n",
19495 __func__, port_id);
19496 return -EINVAL;
19497 }
19498
19499 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
19500 if (port_id == msm_bedais[be_idx].port_id)
19501 break;
19502 }
19503
19504 if (be_idx >= MSM_BACKEND_DAI_MAX) {
19505 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
19506 return -EINVAL;
19507 }
19508
19509 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
19510 if (msm_bedais_pp_params[index].port_id == port_id)
19511 break;
19512 }
19513 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
19514 pr_err("%s: Invalid backend pp params index %d\n",
19515 __func__, index);
19516 return -EINVAL;
19517 }
19518
19519 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
19520 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
19521 pr_err("%s: Invalid passthrough topology 0x%x\n",
19522 __func__, topo_id);
19523 return -EINVAL;
19524 }
19525
19526 if ((msm_bedais[be_idx].passthr_mode[fe_id] == LEGACY_PCM) ||
19527 (msm_bedais[be_idx].passthr_mode[fe_id] == LISTEN))
19528 compr_passthr_mode = false;
19529
19530 pp_config = msm_bedais_pp_params[index].pp_params_config;
19531 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
19532 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
19533 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
19534 mute_on = msm_bedais_pp_params[index].mute_on;
19535 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19536 adm_send_compressed_device_mute(port_id,
19537 copp_idx,
19538 mute_on);
19539 }
19540 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
19541 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
19542 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
19543 &pp_config);
19544 latency = msm_bedais_pp_params[index].latency;
19545 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19546 adm_send_compressed_device_latency(port_id,
19547 copp_idx,
19548 latency);
19549 }
19550 return 0;
19551}
19552
19553static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
19554 struct snd_ctl_elem_value *ucontrol)
19555{
19556 int pp_id = ucontrol->value.integer.value[0];
19557 int port_id = 0;
19558 int index, be_idx, i, topo_id, idx;
19559 bool mute;
19560 int latency;
19561 bool compr_passthr_mode = true;
19562
19563 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
19564
19565 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
19566 port_id = msm_bedais[be_idx].port_id;
19567 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
19568 break;
19569 }
19570
19571 if (be_idx >= MSM_BACKEND_DAI_MAX) {
19572 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
19573 return -EINVAL;
19574 }
19575
19576 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
19577 if (msm_bedais_pp_params[index].port_id == port_id)
19578 break;
19579 }
19580 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
19581 pr_err("%s: Invalid pp params backend index %d\n",
19582 __func__, index);
19583 return -EINVAL;
19584 }
19585
19586 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
19587 MSM_FRONTEND_DAI_MM_SIZE) {
19588 if ((msm_bedais[be_idx].passthr_mode[i] == LEGACY_PCM) ||
19589 (msm_bedais[be_idx].passthr_mode[i] == LISTEN))
19590 compr_passthr_mode = false;
19591
19592 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
19593 unsigned long copp =
19594 session_copp_map[i]
19595 [SESSION_TYPE_RX][be_idx];
19596 if (!test_bit(idx, &copp))
19597 continue;
19598 topo_id = adm_get_topology_for_port_copp_idx(port_id,
19599 idx);
19600 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
19601 continue;
19602 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
19603 __func__, port_id, copp, msm_bedais[be_idx].active,
19604 msm_bedais[be_idx].passthr_mode[i]);
19605 switch (pp_id) {
19606 case ADM_PP_PARAM_MUTE_ID:
19607 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
19608 mute = ucontrol->value.integer.value[1] ? true : false;
19609 msm_bedais_pp_params[index].mute_on = mute;
19610 set_bit(ADM_PP_PARAM_MUTE_BIT,
19611 &msm_bedais_pp_params[index].pp_params_config);
19612 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19613 adm_send_compressed_device_mute(port_id,
19614 idx, mute);
19615 break;
19616 case ADM_PP_PARAM_LATENCY_ID:
19617 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
19618 msm_bedais_pp_params[index].latency =
19619 ucontrol->value.integer.value[1];
19620 set_bit(ADM_PP_PARAM_LATENCY_BIT,
19621 &msm_bedais_pp_params[index].pp_params_config);
19622 latency = msm_bedais_pp_params[index].latency =
19623 ucontrol->value.integer.value[1];
19624 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19625 adm_send_compressed_device_latency(port_id,
19626 idx, latency);
19627 break;
19628 default:
19629 pr_info("%s, device pp param %d not supported\n",
19630 __func__, pp_id);
19631 break;
19632 }
19633 }
19634 }
19635 return 0;
19636}
19637
19638static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
19639 struct snd_ctl_elem_value *ucontrol)
19640{
19641 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
19642 return 0;
19643}
19644
19645static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
19646 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
19647 0, 3, msm_routing_get_device_pp_params_mixer,
19648 msm_routing_put_device_pp_params_mixer),
19649};
19650
19651static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
19652 struct snd_ctl_elem_value *ucontrol)
19653{
19654 ucontrol->value.integer.value[0] =
19655 core_get_license_status(ASM_MEDIA_FMT_APTX);
19656 pr_debug("%s: status %ld\n", __func__,
19657 ucontrol->value.integer.value[0]);
19658 return 0;
19659}
19660
19661static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
19662 struct snd_ctl_elem_value *ucontrol)
19663{
19664 int32_t status = 0;
19665
19666 status = core_set_license(ucontrol->value.integer.value[0],
19667 APTX_CLASSIC_DEC_LICENSE_ID);
19668 pr_debug("%s: status %d\n", __func__, status);
19669 return status;
19670}
19671
19672static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
19673 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
19674 0xFFFF, 0, msm_aptx_dec_license_control_get,
19675 msm_aptx_dec_license_control_put),
19676};
19677
Rohit kumar4ea92b12019-02-01 18:05:33 +053019678static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
19679 struct snd_ctl_elem_value *ucontrol)
19680{
Dieter Lueckingdfe01252018-09-28 15:03:01 +020019681 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
Rohit kumar4ea92b12019-02-01 18:05:33 +053019682 uint32_t be_idx = ucontrol->value.integer.value[0];
19683 int i;
19684
Ramjee Singh6c6884d2019-06-12 12:01:52 +053019685 if (be_idx < 0 || be_idx >= MSM_BACKEND_DAI_MAX) {
19686 pr_err("%s: Invalid Backend ID %d\n",
19687 __func__, be_idx);
19688 return -EINVAL;
19689 }
19690
Dieter Lueckingdfe01252018-09-28 15:03:01 +020019691 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
Rohit kumar4ea92b12019-02-01 18:05:33 +053019692 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
19693 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
19694 pr_err("%s: Invalid channel map %d\n",
19695 __func__, channel_map[i]);
19696 return -EINVAL;
19697 }
19698 }
19699 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
19700
19701 return 0;
19702}
19703
19704static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
19705 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
19706 MSM_BACKEND_DAI_MAX, 0,
Dieter Lueckingdfe01252018-09-28 15:03:01 +020019707 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
Rohit kumar4ea92b12019-02-01 18:05:33 +053019708 msm_routing_put_port_chmap_mixer),
19709};
19710
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019711static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
19712 struct snd_ctl_elem_info *uinfo)
19713{
19714 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
19715 uinfo->count = sizeof(be_dai_name_table);
19716 return 0;
19717}
19718
19719static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
19720 unsigned int __user *bytes,
19721 unsigned int size)
19722{
19723 int i;
19724 int ret;
19725
19726 if (size < sizeof(be_dai_name_table)) {
19727 pr_err("%s: invalid size %d requested, returning\n",
19728 __func__, size);
19729 ret = -EINVAL;
19730 goto done;
19731 }
19732
19733 /*
19734 * Fill be_dai_name_table from msm_bedais table to reduce code changes
19735 * needed when adding new backends
19736 */
19737 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
19738 be_dai_name_table[i].be_id = i;
19739 strlcpy(be_dai_name_table[i].be_name,
19740 msm_bedais[i].name,
19741 LPASS_BE_NAME_MAX_LENGTH);
19742 }
19743
19744 ret = copy_to_user(bytes, &be_dai_name_table,
19745 sizeof(be_dai_name_table));
19746 if (ret) {
19747 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
19748 ret = -EFAULT;
19749 }
19750
19751done:
19752 return ret;
19753}
19754
19755static const struct snd_kcontrol_new
19756 msm_routing_be_dai_name_table_mixer_controls[] = {
19757 {
19758 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
19759 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
19760 .info = msm_routing_be_dai_name_table_info,
19761 .name = "Backend DAI Name Table",
19762 .tlv.c = snd_soc_bytes_tlv_callback,
19763 .private_value = (unsigned long) &(struct soc_bytes_ext) {
19764 .max = sizeof(be_dai_name_table),
19765 .get = msm_routing_be_dai_name_table_tlv_get,
19766 }
19767 },
19768};
19769
19770static int msm_routing_stereo_channel_reverse_control_get(
19771 struct snd_kcontrol *kcontrol,
19772 struct snd_ctl_elem_value *ucontrol)
19773{
19774 ucontrol->value.integer.value[0] = swap_ch;
19775 pr_debug("%s: Swap channel value: %ld\n", __func__,
19776 ucontrol->value.integer.value[0]);
19777 return 0;
19778}
19779
19780static int msm_routing_stereo_channel_reverse_control_put(
19781 struct snd_kcontrol *kcontrol,
19782 struct snd_ctl_elem_value *ucontrol)
19783{
19784 int i, idx, be_index, port_id;
19785 int ret = 0;
19786 unsigned long copp;
19787
19788 pr_debug("%s Swap channel value:%ld\n", __func__,
19789 ucontrol->value.integer.value[0]);
19790
19791 swap_ch = ucontrol->value.integer.value[0];
19792
19793 mutex_lock(&routing_lock);
19794 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
19795 port_id = msm_bedais[be_index].port_id;
19796 if (!msm_bedais[be_index].active)
19797 continue;
19798
19799 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
19800 MSM_FRONTEND_DAI_MM_SIZE) {
19801 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
19802 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
19803 if (!test_bit(idx, &copp))
19804 continue;
19805
19806 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
19807 __func__, port_id, idx);
19808 ret = adm_swap_speaker_channels(
19809 port_id, idx,
19810 msm_bedais[be_index].sample_rate,
19811 swap_ch);
19812 if (ret) {
19813 pr_err("%s:Swap_channel failed, err=%d\n",
19814 __func__, ret);
19815 goto done;
19816 }
19817 }
19818 }
19819 }
19820done:
19821 mutex_unlock(&routing_lock);
19822 return ret;
19823}
19824
19825static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
19826 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
19827 1, 0, msm_routing_stereo_channel_reverse_control_get,
19828 msm_routing_stereo_channel_reverse_control_put),
19829};
19830
19831static const struct snd_pcm_ops msm_routing_pcm_ops = {
19832 .hw_params = msm_pcm_routing_hw_params,
19833 .close = msm_pcm_routing_close,
19834 .prepare = msm_pcm_routing_prepare,
19835};
19836
19837/* Not used but frame seems to require it */
19838static int msm_routing_probe(struct snd_soc_platform *platform)
19839{
19840 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
19841 ARRAY_SIZE(msm_qdsp6_widgets));
19842 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
19843 ARRAY_SIZE(intercon));
19844
19845 snd_soc_dapm_new_widgets(platform->component.dapm.card);
19846
19847 snd_soc_add_platform_controls(platform, lsm_controls,
19848 ARRAY_SIZE(lsm_controls));
19849
19850 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
19851 ARRAY_SIZE(aanc_slim_0_rx_mux));
19852
19853 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
19854 ARRAY_SIZE(msm_voc_session_controls));
19855
19856 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
19857 ARRAY_SIZE(app_type_cfg_controls));
19858
19859 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
19860 ARRAY_SIZE(lsm_app_type_cfg_controls));
19861
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070019862 snd_soc_add_platform_controls(platform, module_cfg_controls,
19863 ARRAY_SIZE(module_cfg_controls));
19864
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019865 snd_soc_add_platform_controls(platform,
19866 stereo_to_custom_stereo_controls,
19867 ARRAY_SIZE(stereo_to_custom_stereo_controls));
19868
19869 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
19870 ARRAY_SIZE(ec_ref_param_controls));
19871
19872 snd_soc_add_platform_controls(platform, channel_mixer_controls,
19873 ARRAY_SIZE(channel_mixer_controls));
19874
19875 msm_qti_pp_add_controls(platform);
19876
19877 msm_dts_srs_tm_add_controls(platform);
19878
19879 msm_dolby_dap_add_controls(platform);
19880
19881 snd_soc_add_platform_controls(platform,
19882 use_ds1_or_ds2_controls,
19883 ARRAY_SIZE(use_ds1_or_ds2_controls));
19884
19885 snd_soc_add_platform_controls(platform,
19886 device_pp_params_mixer_controls,
19887 ARRAY_SIZE(device_pp_params_mixer_controls));
19888
19889 snd_soc_add_platform_controls(platform,
19890 msm_routing_be_dai_name_table_mixer_controls,
19891 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
19892
19893 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
19894 ARRAY_SIZE(msm_source_tracking_controls));
19895 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
19896 ARRAY_SIZE(adm_channel_config_controls));
19897
19898 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
19899 ARRAY_SIZE(aptx_dec_license_controls));
19900 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
19901 ARRAY_SIZE(stereo_channel_reverse_control));
Rohit kumar4ea92b12019-02-01 18:05:33 +053019902 snd_soc_add_platform_controls(platform,
19903 port_multi_channel_map_mixer_controls,
19904 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
19905
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019906 return 0;
19907}
19908
19909int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
19910{
19911 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
19912}
19913
19914void msm_routing_pcm_free(struct snd_pcm *pcm)
19915{
19916 msm_pcm_routing_hwdep_free(pcm);
19917}
19918
19919static struct snd_soc_platform_driver msm_soc_routing_platform = {
19920 .ops = &msm_routing_pcm_ops,
19921 .probe = msm_routing_probe,
19922 .pcm_new = msm_routing_pcm_new,
19923 .pcm_free = msm_routing_pcm_free,
19924};
19925
19926static int msm_routing_pcm_probe(struct platform_device *pdev)
19927{
19928
19929 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
19930 return snd_soc_register_platform(&pdev->dev,
19931 &msm_soc_routing_platform);
19932}
19933
19934static int msm_routing_pcm_remove(struct platform_device *pdev)
19935{
19936 snd_soc_unregister_platform(&pdev->dev);
19937 return 0;
19938}
19939
19940static const struct of_device_id msm_pcm_routing_dt_match[] = {
19941 {.compatible = "qcom,msm-pcm-routing"},
19942 {}
19943};
19944MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
19945
19946static struct platform_driver msm_routing_pcm_driver = {
19947 .driver = {
19948 .name = "msm-pcm-routing",
19949 .owner = THIS_MODULE,
19950 .of_match_table = msm_pcm_routing_dt_match,
19951 },
19952 .probe = msm_routing_pcm_probe,
19953 .remove = msm_routing_pcm_remove,
19954};
19955
19956int msm_routing_check_backend_enabled(int fedai_id)
19957{
19958 int i;
19959
19960 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
19961 /* bad ID assigned in machine driver */
19962 pr_err("%s: bad MM ID\n", __func__);
19963 return 0;
19964 }
19965 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
19966 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
19967 return msm_bedais[i].active;
19968 }
19969 return 0;
19970}
19971
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053019972static int get_cal_type_index(int32_t cal_type)
19973{
19974 int ret = -EINVAL;
19975
19976 switch (cal_type) {
19977 case ADM_TOPOLOGY_CAL_TYPE:
19978 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
19979 break;
19980 case ADM_LSM_TOPOLOGY_CAL_TYPE:
19981 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
19982 break;
19983 default:
19984 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
19985 }
19986 return ret;
19987}
19988
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019989static int msm_routing_set_cal(int32_t cal_type,
19990 size_t data_size, void *data)
19991{
19992 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053019993 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019994 pr_debug("%s\n", __func__);
19995
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053019996 cal_index = get_cal_type_index(cal_type);
19997 if (cal_index < 0) {
19998 pr_err("%s: Could not get cal index %d\n",
19999 __func__, cal_index);
20000 ret = -EINVAL;
20001 goto done;
20002 }
20003
20004 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020005 if (ret < 0) {
20006 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
20007 __func__, ret, cal_type);
20008 ret = -EINVAL;
20009 goto done;
20010 }
20011done:
20012 return ret;
20013}
20014
20015static void msm_routing_delete_cal_data(void)
20016{
20017 pr_debug("%s\n", __func__);
20018
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020019 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020020}
20021
20022static int msm_routing_init_cal_data(void)
20023{
20024 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020025 struct cal_type_info cal_type_info[] = {
20026 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020027 {NULL, NULL, NULL,
20028 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020029 {NULL, NULL, cal_utils_match_buf_num} },
20030
20031 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
20032 {NULL, NULL, NULL,
20033 msm_routing_set_cal, NULL, NULL} },
20034 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020035 };
20036 pr_debug("%s\n", __func__);
20037
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020038 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
20039 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020040 if (ret < 0) {
20041 pr_err("%s: could not create cal type!\n",
20042 __func__);
20043 ret = -EINVAL;
20044 goto err;
20045 }
20046
20047 return ret;
20048err:
20049 msm_routing_delete_cal_data();
20050 return ret;
20051}
20052
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053020053int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020054{
20055 mutex_init(&routing_lock);
20056 if (msm_routing_init_cal_data())
20057 pr_err("%s: could not init cal data!\n", __func__);
20058
20059 afe_set_routing_callback(
20060 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
20061
20062 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
20063 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
20064
20065 return platform_driver_register(&msm_routing_pcm_driver);
20066}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020067
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053020068void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020069{
20070 msm_routing_delete_cal_data();
20071 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
20072 mutex_destroy(&routing_lock);
20073 platform_driver_unregister(&msm_routing_pcm_driver);
20074}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020075
20076MODULE_DESCRIPTION("MSM routing platform driver");
20077MODULE_LICENSE("GPL v2");