blob: bb10858de7499bd4b59b0a983757d1f42509eff8 [file] [log] [blame]
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08001/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include <linux/init.h>
14#include <linux/err.h>
15#include <linux/module.h>
16#include <linux/moduleparam.h>
17#include <linux/platform_device.h>
18#include <linux/bitops.h>
19#include <linux/mutex.h>
20#include <linux/of_device.h>
21#include <linux/slab.h>
22#include <sound/core.h>
23#include <sound/soc.h>
24#include <sound/soc-dapm.h>
25#include <sound/pcm.h>
26#include <sound/initval.h>
27#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028#include <sound/tlv.h>
29#include <sound/asound.h>
30#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053031#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053032#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053033#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053034#include <dsp/q6voice.h>
35#include <dsp/q6adm-v2.h>
36#include <dsp/q6asm-v2.h>
37#include <dsp/q6afe-v2.h>
38#include <dsp/q6lsm.h>
39#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080040#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053041#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053042
43#include "msm-pcm-routing-v2.h"
44#include "msm-pcm-routing-devdep.h"
45#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053046#include "msm-dolby-dap-config.h"
47#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053048
49#ifndef CONFIG_DOLBY_DAP
50#undef DOLBY_ADM_COPP_TOPOLOGY_ID
51#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
52#endif
53
54#ifndef CONFIG_DOLBY_DS2
55#undef DS2_ADM_COPP_TOPOLOGY_ID
56#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
57#endif
58
59static struct mutex routing_lock;
60
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053061static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053062
63static int fm_switch_enable;
64static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080065static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053066static int int0_mi2s_switch_enable;
67static int int4_mi2s_switch_enable;
68static int pri_mi2s_switch_enable;
69static int sec_mi2s_switch_enable;
70static int tert_mi2s_switch_enable;
71static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053072static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053073static int fm_pcmrx_switch_enable;
74static int usb_switch_enable;
75static int lsm_port_index;
76static int slim0_rx_aanc_fb_port;
77static int msm_route_ec_ref_rx;
78static int msm_ec_ref_ch = 4;
79static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
80static int msm_ec_ref_sampling_rate = 48000;
81static uint32_t voc_session_id = ALL_SESSION_VSID;
82static int msm_route_ext_ec_ref;
83static bool is_custom_stereo_on;
84static bool is_ds2_on;
85static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053086static int aanc_level;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053087
88#define WEIGHT_0_DB 0x4000
89/* all the FEs which can support channel mixer */
90static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
91/* input BE for each FE */
92static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
93
94enum {
95 MADNONE,
96 MADAUDIO,
97 MADBEACON,
98 MADULTRASOUND,
99 MADSWAUDIO,
100};
101
102#define ADM_LSM_PORT_INDEX 9
103
104#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
105#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
106#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
107#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
108#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
109#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
110#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
111#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
112#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
113#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530114#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
115#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530116
117#define LSM_FUNCTION_TEXT "LSM Function"
118static const char * const lsm_port_text[] = {
119 "None",
120 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
121 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
122 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530123 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530124};
125
126struct msm_pcm_route_bdai_pp_params {
127 u16 port_id; /* AFE port ID */
128 unsigned long pp_params_config;
129 bool mute_on;
130 int latency;
131};
132
133static struct msm_pcm_route_bdai_pp_params
134 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
135 {HDMI_RX, 0, 0, 0},
136 {DISPLAY_PORT_RX, 0, 0, 0},
137};
138
139/*
140 * The be_dai_name_table is passed to HAL so that it can specify the
141 * BE ID for the BE it wants to enable based on the name. Thus there
142 * is a matching table and structure in HAL that need to be updated
143 * if any changes to these are made.
144 */
145struct msm_pcm_route_bdai_name {
146 unsigned int be_id;
147 char be_name[LPASS_BE_NAME_MAX_LENGTH];
148};
149static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
150
151static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
152 int fe_id);
153
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700154static void msm_routing_load_topology(size_t data_size, void *data);
155static void msm_routing_unload_topology(uint32_t topology_id);
156
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530157static int msm_routing_get_bit_width(unsigned int format)
158{
159 int bit_width;
160
161 switch (format) {
162 case SNDRV_PCM_FORMAT_S32_LE:
163 bit_width = 32;
164 break;
165 case SNDRV_PCM_FORMAT_S24_LE:
166 case SNDRV_PCM_FORMAT_S24_3LE:
167 bit_width = 24;
168 break;
169 case SNDRV_PCM_FORMAT_S16_LE:
170 default:
171 bit_width = 16;
172 }
173 return bit_width;
174}
175
176static bool msm_is_resample_needed(int input_sr, int output_sr)
177{
178 bool rc = false;
179
180 if (input_sr != output_sr)
181 rc = true;
182
183 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
184 (rc ? "oh yes" : "not really"),
185 input_sr, output_sr);
186
187 return rc;
188}
189
190static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
191 int channels)
192{
193 int rc = 0;
194
195 switch (topology) {
196 case SRS_TRUMEDIA_TOPOLOGY_ID:
197 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
198 msm_dts_srs_tm_init(port_id, copp_idx);
199 break;
200 case DS2_ADM_COPP_TOPOLOGY_ID:
201 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
202 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
203 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
204 is_custom_stereo_on);
205 if (rc < 0)
206 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
207 __func__, topology, port_id,
208 is_custom_stereo_on, rc);
209 break;
210 case DOLBY_ADM_COPP_TOPOLOGY_ID:
211 if (is_ds2_on) {
212 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
213 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
214 is_custom_stereo_on);
215 if (rc < 0)
216 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
217 __func__, topology, port_id, rc);
218 } else {
219 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
220 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
221 is_custom_stereo_on);
222 if (rc < 0)
223 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
224 __func__, topology, port_id, rc);
225 }
226 break;
227 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
228 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
229 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
230 if (rc < 0)
231 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
232 __func__, topology, port_id, copp_idx, rc);
233 break;
234 default:
235 /* custom topology specific feature param handlers */
236 break;
237 }
238}
239
240static void msm_pcm_routing_deinit_pp(int port_id, int topology)
241{
242 switch (topology) {
243 case SRS_TRUMEDIA_TOPOLOGY_ID:
244 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
245 msm_dts_srs_tm_deinit(port_id);
246 break;
247 case DS2_ADM_COPP_TOPOLOGY_ID:
248 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
249 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
250 msm_ds2_dap_deinit(port_id);
251 break;
252 case DOLBY_ADM_COPP_TOPOLOGY_ID:
253 if (is_ds2_on) {
254 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
255 msm_ds2_dap_deinit(port_id);
256 } else {
257 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
258 msm_dolby_dap_deinit(port_id);
259 }
260 break;
261 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
262 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
263 msm_qti_pp_asphere_deinit(port_id);
264 break;
265 default:
266 /* custom topology specific feature deinit handlers */
267 break;
268 }
269}
270
271static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
272 int path_type, int perf_mode)
273{
274 int itr = 0, rc = 0;
275
276 if ((path_type == ADM_PATH_PLAYBACK) &&
277 (perf_mode == LEGACY_PCM_MODE) &&
278 is_custom_stereo_on) {
279 for (itr = 0; itr < payload.num_copps; itr++) {
280 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
281 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
282 continue;
283 }
284
285 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
286 payload.port_id[itr],
287 payload.copp_idx[itr],
288 payload.session_id,
289 Q14_GAIN_ZERO_POINT_FIVE,
290 Q14_GAIN_ZERO_POINT_FIVE,
291 Q14_GAIN_ZERO_POINT_FIVE,
292 Q14_GAIN_ZERO_POINT_FIVE);
293 if (rc < 0)
294 pr_err("%s: err setting custom stereo\n",
295 __func__);
296 }
297 }
298}
299
300#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
301struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
302 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_RX},
303 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_TX},
304 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_RX},
305 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_TX},
306 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_HDMI},
307 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_RX},
308 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_TX},
309 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_RX},
310 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_TX},
311 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
312 LPASS_BE_AFE_PCM_RX},
313 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
314 LPASS_BE_AFE_PCM_TX},
315 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
316 LPASS_BE_AUXPCM_RX},
317 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
318 LPASS_BE_AUXPCM_TX},
319 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
320 LPASS_BE_VOICE_PLAYBACK_TX},
321 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
322 LPASS_BE_VOICE2_PLAYBACK_TX},
323 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
324 LPASS_BE_INCALL_RECORD_RX},
325 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
326 LPASS_BE_INCALL_RECORD_TX},
327 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_RX},
328 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_TX},
329 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SEC_I2S_RX},
330 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_RX},
331 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_TX},
332 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_RX},
333 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_TX},
334 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_RX},
335 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_TX},
336 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_RX},
337 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_TX},
338 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_RX},
339 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_TX},
340 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_RX},
341 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_TX},
342 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_RX},
343 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_TX},
344 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_RX},
345 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_TX},
346 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_RX},
347 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_TX},
348 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_1_TX},
349 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
350 LPASS_BE_QUAT_MI2S_RX},
351 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
352 LPASS_BE_QUAT_MI2S_TX},
353 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
354 LPASS_BE_SEC_MI2S_RX},
355 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
356 LPASS_BE_SEC_MI2S_TX},
357 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
358 LPASS_BE_PRI_MI2S_RX},
359 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
360 LPASS_BE_PRI_MI2S_TX},
361 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
362 LPASS_BE_TERT_MI2S_RX},
363 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
364 LPASS_BE_TERT_MI2S_TX},
365 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
366 LPASS_BE_AUDIO_I2S_RX},
367 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
368 LPASS_BE_SEC_AUXPCM_RX},
369 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
370 LPASS_BE_SEC_AUXPCM_TX},
Ralf Herzc8701f72018-06-20 11:37:35 +0200371 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
372 LPASS_BE_PRI_SPDIF_RX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0, {0},
374 LPASS_BE_SEC_MI2S_RX_SD1},
375 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
376 LPASS_BE_QUIN_MI2S_RX},
377 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
378 LPASS_BE_QUIN_MI2S_TX},
379 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
380 LPASS_BE_SENARY_MI2S_TX},
381 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
382 LPASS_BE_PRI_TDM_RX_0},
383 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
384 LPASS_BE_PRI_TDM_TX_0},
385 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
386 LPASS_BE_PRI_TDM_RX_1},
387 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
388 LPASS_BE_PRI_TDM_TX_1},
389 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
390 LPASS_BE_PRI_TDM_RX_2},
391 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
392 LPASS_BE_PRI_TDM_TX_2},
393 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
394 LPASS_BE_PRI_TDM_RX_3},
395 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
396 LPASS_BE_PRI_TDM_TX_3},
397 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
398 LPASS_BE_PRI_TDM_RX_4},
399 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
400 LPASS_BE_PRI_TDM_TX_4},
401 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
402 LPASS_BE_PRI_TDM_RX_5},
403 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
404 LPASS_BE_PRI_TDM_TX_5},
405 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
406 LPASS_BE_PRI_TDM_RX_6},
407 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
408 LPASS_BE_PRI_TDM_TX_6},
409 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
410 LPASS_BE_PRI_TDM_RX_7},
411 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
412 LPASS_BE_PRI_TDM_TX_7},
413 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
414 LPASS_BE_SEC_TDM_RX_0},
415 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
416 LPASS_BE_SEC_TDM_TX_0},
417 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
418 LPASS_BE_SEC_TDM_RX_1},
419 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
420 LPASS_BE_SEC_TDM_TX_1},
421 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
422 LPASS_BE_SEC_TDM_RX_2},
423 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
424 LPASS_BE_SEC_TDM_TX_2},
425 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
426 LPASS_BE_SEC_TDM_RX_3},
427 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
428 LPASS_BE_SEC_TDM_TX_3},
429 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
430 LPASS_BE_SEC_TDM_RX_4},
431 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
432 LPASS_BE_SEC_TDM_TX_4},
433 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
434 LPASS_BE_SEC_TDM_RX_5},
435 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
436 LPASS_BE_SEC_TDM_TX_5},
437 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
438 LPASS_BE_SEC_TDM_RX_6},
439 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
440 LPASS_BE_SEC_TDM_TX_6},
441 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
442 LPASS_BE_SEC_TDM_RX_7},
443 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
444 LPASS_BE_SEC_TDM_TX_7},
445 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
446 LPASS_BE_TERT_TDM_RX_0},
447 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
448 LPASS_BE_TERT_TDM_TX_0},
449 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
450 LPASS_BE_TERT_TDM_RX_1},
451 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
452 LPASS_BE_TERT_TDM_TX_1},
453 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
454 LPASS_BE_TERT_TDM_RX_2},
455 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
456 LPASS_BE_TERT_TDM_TX_2},
457 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
458 LPASS_BE_TERT_TDM_RX_3},
459 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
460 LPASS_BE_TERT_TDM_TX_3},
461 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
462 LPASS_BE_TERT_TDM_RX_4},
463 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
464 LPASS_BE_TERT_TDM_TX_4},
465 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
466 LPASS_BE_TERT_TDM_RX_5},
467 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
468 LPASS_BE_TERT_TDM_TX_5},
469 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
470 LPASS_BE_TERT_TDM_RX_6},
471 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
472 LPASS_BE_TERT_TDM_TX_6},
473 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
474 LPASS_BE_TERT_TDM_RX_7},
475 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
476 LPASS_BE_TERT_TDM_TX_7},
477 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
478 LPASS_BE_QUAT_TDM_RX_0},
479 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
480 LPASS_BE_QUAT_TDM_TX_0},
481 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
482 LPASS_BE_QUAT_TDM_RX_1},
483 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
484 LPASS_BE_QUAT_TDM_TX_1},
485 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
486 LPASS_BE_QUAT_TDM_RX_2},
487 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
488 LPASS_BE_QUAT_TDM_TX_2},
489 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
490 LPASS_BE_QUAT_TDM_RX_3},
491 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
492 LPASS_BE_QUAT_TDM_TX_3},
493 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
494 LPASS_BE_QUAT_TDM_RX_4},
495 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
496 LPASS_BE_QUAT_TDM_TX_4},
497 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
498 LPASS_BE_QUAT_TDM_RX_5},
499 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
500 LPASS_BE_QUAT_TDM_TX_5},
501 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
502 LPASS_BE_QUAT_TDM_RX_6},
503 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
504 LPASS_BE_QUAT_TDM_TX_6},
505 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
506 LPASS_BE_QUAT_TDM_RX_7},
507 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
508 LPASS_BE_QUAT_TDM_TX_7},
Rohit Kumara5077932017-09-10 22:05:05 +0530509 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
510 LPASS_BE_QUIN_TDM_RX_0},
511 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
512 LPASS_BE_QUIN_TDM_TX_0},
513 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
514 LPASS_BE_QUIN_TDM_RX_1},
515 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
516 LPASS_BE_QUIN_TDM_TX_1},
517 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
518 LPASS_BE_QUIN_TDM_RX_2},
519 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
520 LPASS_BE_QUIN_TDM_TX_2},
521 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
522 LPASS_BE_QUIN_TDM_RX_3},
523 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
524 LPASS_BE_QUIN_TDM_TX_3},
525 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
526 LPASS_BE_QUIN_TDM_RX_4},
527 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
528 LPASS_BE_QUIN_TDM_TX_4},
529 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
530 LPASS_BE_QUIN_TDM_RX_5},
531 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
532 LPASS_BE_QUIN_TDM_TX_5},
533 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
534 LPASS_BE_QUIN_TDM_RX_6},
535 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
536 LPASS_BE_QUIN_TDM_TX_6},
537 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
538 LPASS_BE_QUIN_TDM_RX_7},
539 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
540 LPASS_BE_QUIN_TDM_TX_7},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530541 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
542 LPASS_BE_INT_BT_A2DP_RX},
543 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
544 LPASS_BE_USB_AUDIO_RX},
545 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
546 LPASS_BE_USB_AUDIO_TX},
547 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
548 LPASS_BE_DISPLAY_PORT},
Karthikeyan Mani57550082018-05-03 18:43:58 -0700549 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
550 LPASS_BE_DISPLAY_PORT1},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
552 LPASS_BE_TERT_AUXPCM_RX},
553 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
554 LPASS_BE_TERT_AUXPCM_TX},
555 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
556 LPASS_BE_QUAT_AUXPCM_RX},
557 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
558 LPASS_BE_QUAT_AUXPCM_TX},
Rohit Kumara5077932017-09-10 22:05:05 +0530559 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
560 LPASS_BE_QUIN_AUXPCM_RX},
561 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
562 LPASS_BE_QUIN_AUXPCM_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
564 LPASS_BE_INT0_MI2S_RX},
565 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
566 LPASS_BE_INT0_MI2S_TX},
567 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
568 LPASS_BE_INT1_MI2S_RX},
569 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
570 LPASS_BE_INT1_MI2S_TX},
571 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
572 LPASS_BE_INT2_MI2S_RX},
573 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
574 LPASS_BE_INT2_MI2S_TX},
575 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
576 LPASS_BE_INT3_MI2S_RX},
577 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
578 LPASS_BE_INT3_MI2S_TX},
579 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
580 LPASS_BE_INT4_MI2S_RX},
581 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
582 LPASS_BE_INT4_MI2S_TX},
583 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
584 LPASS_BE_INT5_MI2S_RX},
585 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
586 LPASS_BE_INT5_MI2S_TX},
587 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
588 LPASS_BE_INT6_MI2S_RX},
589 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
590 LPASS_BE_INT6_MI2S_TX},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530591 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
592 LPASS_BE_WSA_CDC_DMA_RX_0},
593 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
594 LPASS_BE_WSA_CDC_DMA_TX_0},
595 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
596 LPASS_BE_WSA_CDC_DMA_RX_1},
597 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
598 LPASS_BE_WSA_CDC_DMA_TX_1},
599 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
600 LPASS_BE_WSA_CDC_DMA_TX_2},
601 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
602 LPASS_BE_VA_CDC_DMA_TX_0},
603 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
604 LPASS_BE_VA_CDC_DMA_TX_1},
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530605 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
606 LPASS_BE_RX_CDC_DMA_RX_0},
607 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
608 LPASS_BE_TX_CDC_DMA_TX_0},
609 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
610 LPASS_BE_RX_CDC_DMA_RX_1},
611 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
612 LPASS_BE_TX_CDC_DMA_TX_1},
613 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
614 LPASS_BE_RX_CDC_DMA_RX_2},
615 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
616 LPASS_BE_TX_CDC_DMA_TX_2},
617 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
618 LPASS_BE_RX_CDC_DMA_RX_3},
619 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
620 LPASS_BE_TX_CDC_DMA_TX_3},
621 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
622 LPASS_BE_RX_CDC_DMA_RX_4},
623 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
624 LPASS_BE_TX_CDC_DMA_TX_4},
625 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
626 LPASS_BE_RX_CDC_DMA_RX_5},
627 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
628 LPASS_BE_TX_CDC_DMA_TX_5},
629 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
630 LPASS_BE_RX_CDC_DMA_RX_6},
631 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
632 LPASS_BE_RX_CDC_DMA_RX_7},
Ralf Herzc8701f72018-06-20 11:37:35 +0200633 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
634 LPASS_BE_PRI_SPDIF_TX},
635 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
636 LPASS_BE_SEC_SPDIF_RX},
637 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
638 LPASS_BE_SEC_SPDIF_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530639};
640
641/* Track ASM playback & capture sessions of DAI
642 * Track LSM listen sessions
643 */
644static struct msm_pcm_routing_fdai_data
645 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
646 /* MULTIMEDIA1 */
647 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
648 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
649 /* MULTIMEDIA2 */
650 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
651 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
652 /* MULTIMEDIA3 */
653 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
654 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
655 /* MULTIMEDIA4 */
656 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
657 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
658 /* MULTIMEDIA5 */
659 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
660 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
661 /* MULTIMEDIA6 */
662 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
663 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
664 /* MULTIMEDIA7*/
665 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
666 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
667 /* MULTIMEDIA8 */
668 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
669 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
670 /* MULTIMEDIA9 */
671 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
672 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
673 /* MULTIMEDIA10 */
674 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
675 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
676 /* MULTIMEDIA11 */
677 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
678 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
679 /* MULTIMEDIA12 */
680 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
681 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
682 /* MULTIMEDIA13 */
683 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
684 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
685 /* MULTIMEDIA14 */
686 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
687 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
688 /* MULTIMEDIA15 */
689 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
690 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
691 /* MULTIMEDIA16 */
692 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
693 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
694 /* MULTIMEDIA17 */
695 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
696 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
697 /* MULTIMEDIA18 */
698 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
699 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
700 /* MULTIMEDIA19 */
701 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
702 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
703 /* MULTIMEDIA20 */
704 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
705 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700706 /* MULTIMEDIA21 */
707 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
708 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530709 /* MULTIMEDIA28 */
710 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
711 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
712 /* MULTIMEDIA29 */
713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530715 /* VOIP */
716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
718 /* AFE_RX */
719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
721 /* AFE_TX */
722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
724 /* VOICE_STUB */
725 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
726 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530727 /* DTMF_RX */
728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530730 /* QCHAT */
731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
733 /* VOLTE_STUB */
734 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
735 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
736 /* LSM1 */
737 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
738 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
739 /* LSM2 */
740 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
741 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
742 /* LSM3 */
743 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
744 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
745 /* LSM4 */
746 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
747 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
748 /* LSM5 */
749 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
750 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
751 /* LSM6 */
752 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
753 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
754 /* LSM7 */
755 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
756 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
757 /* LSM8 */
758 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
759 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
760 /* VOICE2_STUB */
761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530763 /* VOICEMMODE1 */
764 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
765 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
766 /* VOICEMMODE2 */
767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
769};
770
771static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
772 [MSM_BACKEND_DAI_MAX];
773static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
774static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
775static struct msm_pcm_stream_app_type_cfg
776 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
777
778static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
779
780/* The caller of this should aqcuire routing lock */
781void msm_pcm_routing_get_bedai_info(int be_idx,
782 struct msm_pcm_routing_bdai_data *be_dai)
783{
784 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
785 memcpy(be_dai, &msm_bedais[be_idx],
786 sizeof(struct msm_pcm_routing_bdai_data));
787}
788
789/* The caller of this should aqcuire routing lock */
790void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
791 struct msm_pcm_routing_fdai_data *fe_dai)
792{
793 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
794 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
795 sizeof(struct msm_pcm_routing_fdai_data));
796}
797
798void msm_pcm_routing_acquire_lock(void)
799{
800 mutex_lock(&routing_lock);
801}
802
803void msm_pcm_routing_release_lock(void)
804{
805 mutex_unlock(&routing_lock);
806}
807
808static int msm_pcm_routing_get_app_type_idx(int app_type)
809{
810 int idx;
811
812 pr_debug("%s: app_type: %d\n", __func__, app_type);
813 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
814 if (app_type_cfg[idx].app_type == app_type)
815 return idx;
816 }
817 pr_info("%s: App type not available, fallback to default\n", __func__);
818 return 0;
819}
820
821static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
822{
823 int idx;
824
825 pr_debug("%s: app_type: %d\n", __func__, app_type);
826 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
827 if (lsm_app_type_cfg[idx].app_type == app_type)
828 return idx;
829 }
830 pr_debug("%s: App type not available, fallback to default\n", __func__);
831 return 0;
832}
833
834static bool is_mm_lsm_fe_id(int fe_id)
835{
836 bool rc = true;
837
838 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
839 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
840 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
841 rc = false;
842 }
843 return rc;
844}
845
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700846/*
847 * msm_pcm_routing_send_chmix_cfg:
848 * send the channel mixer command to mix the input channels
849 * into output channels.
850 *
851 * @fe_id: front end id
852 * @ip_channel_cnt: input channel count
853 * @op_channel_cnt: output channel count
854 * @ch_wght_coeff: channel weight co-efficients for channel mixing
855 * @session_type: indicates session is of type TX or RX
856 * @stream_type: indicates either Audio or Listen stream type
857 */
858int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
859 int op_channel_cnt, int *ch_wght_coeff,
860 int session_type, int stream_type)
861{
862
863 int rc = 0, idx = 0;
864 int be_index = 0, port_id;
865 unsigned int session_id = 0;
866
867 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
868 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
869 stream_type);
870 if (!is_mm_lsm_fe_id(fe_id)) {
871 /* bad ID assigned in machine driver */
872 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
873 return -EINVAL;
874 }
875
876 if (ch_wght_coeff == NULL) {
877 pr_err("%s: Null channel weightage coefficients passed\n",
878 __func__);
879 return -EINVAL;
880 }
881
882 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
883 port_id = msm_bedais[be_index].port_id;
884 if (!msm_bedais[be_index].active ||
885 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
886 continue;
887
888 session_id = fe_dai_map[fe_id][session_type].strm_id;
889
890 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
891 unsigned long copp =
892 session_copp_map[fe_id][session_type][be_index];
893 if (!test_bit(idx, &copp))
894 continue;
895 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
896 session_id, ip_channel_cnt,
897 op_channel_cnt, ch_wght_coeff,
898 session_type, stream_type);
899 if (rc < 0)
900 pr_err("%s: err setting channel mix config\n",
901 __func__);
902 }
903 }
904
905 return 0;
906}
907EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
908
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530909int msm_pcm_routing_reg_stream_app_type_cfg(
910 int fedai_id, int session_type, int be_id,
911 struct msm_pcm_stream_app_type_cfg *cfg_data)
912{
913 int ret = 0;
914
915 if (cfg_data == NULL) {
916 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
917 ret = -EINVAL;
918 goto done;
919 }
920
921 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
922 __func__, fedai_id, session_type, be_id,
923 cfg_data->app_type, cfg_data->acdb_dev_id,
924 cfg_data->sample_rate);
925
926 if (!is_mm_lsm_fe_id(fedai_id)) {
927 pr_err("%s: Invalid machine driver ID %d\n",
928 __func__, fedai_id);
929 ret = -EINVAL;
930 goto done;
931 }
932 if (session_type != SESSION_TYPE_RX &&
933 session_type != SESSION_TYPE_TX) {
934 pr_err("%s: Invalid session type %d\n",
935 __func__, session_type);
936 ret = -EINVAL;
937 goto done;
938 }
939 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
940 pr_err("%s: Received out of bounds be_id %d\n",
941 __func__, be_id);
942 ret = -EINVAL;
943 goto done;
944 }
945
946 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
947
948 /*
949 * Store the BE ID of the configuration information set as the latest so
950 * the get mixer control knows what to return.
951 */
952 last_be_id_configured[fedai_id][session_type] = be_id;
953
954done:
955 return ret;
956}
957EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
958
959/**
960 * msm_pcm_routing_get_stream_app_type_cfg
961 *
962 * Receives fedai_id, session_type, be_id, and populates app_type,
963 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
964 * -EINVAL and does not alter passed values.
965 *
966 * fedai_id - Passed value, front end ID for which app type config is wanted
967 * session_type - Passed value, session type for which app type config
968 * is wanted
969 * be_id - Returned value, back end device id the app type config data is for
970 * cfg_data - Returned value, configuration data used by app type config
971 */
972int msm_pcm_routing_get_stream_app_type_cfg(
973 int fedai_id, int session_type, int *bedai_id,
974 struct msm_pcm_stream_app_type_cfg *cfg_data)
975{
976 int be_id;
977 int ret = 0;
978
979 if (bedai_id == NULL) {
980 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
981 ret = -EINVAL;
982 goto done;
983 } else if (cfg_data == NULL) {
984 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
985 ret = -EINVAL;
986 goto done;
987 } else if (!is_mm_lsm_fe_id(fedai_id)) {
988 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
989 ret = -EINVAL;
990 goto done;
991 } else if (session_type != SESSION_TYPE_RX &&
992 session_type != SESSION_TYPE_TX) {
993 pr_err("%s: Invalid session type %d\n", __func__, session_type);
994 ret = -EINVAL;
995 goto done;
996 }
997
998 be_id = last_be_id_configured[fedai_id][session_type];
999 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1000 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1001 ret = -EINVAL;
1002 goto done;
1003 }
1004
1005 *bedai_id = be_id;
1006 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1007 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1008 __func__, fedai_id, session_type, *bedai_id,
1009 cfg_data->app_type, cfg_data->acdb_dev_id,
1010 cfg_data->sample_rate);
1011done:
1012 return ret;
1013}
1014EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1015
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301016static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1017 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301018{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301019 struct list_head *ptr, *next;
1020 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301021 pr_debug("%s\n", __func__);
1022
1023 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301024 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301025
1026 cal_block = list_entry(ptr,
1027 struct cal_block_data, list);
1028
Vikram Panduranga770b8382017-09-27 12:17:36 -07001029 if (cal_utils_is_cal_stale(cal_block))
1030 continue;
1031
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301032 if (((struct audio_cal_info_adm_top *)cal_block
1033 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301034 return cal_block;
1035 }
1036 }
1037 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1038 return NULL;
1039}
1040
1041static struct cal_block_data *msm_routing_find_topology(int path,
1042 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301043 int acdb_id,
1044 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301045{
1046 struct list_head *ptr, *next;
1047 struct cal_block_data *cal_block = NULL;
1048 struct audio_cal_info_adm_top *cal_info;
1049
1050 pr_debug("%s\n", __func__);
1051
1052 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301053 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301054
1055 cal_block = list_entry(ptr,
1056 struct cal_block_data, list);
1057
Vikram Panduranga770b8382017-09-27 12:17:36 -07001058 if (cal_utils_is_cal_stale(cal_block))
1059 continue;
1060
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301061 cal_info = (struct audio_cal_info_adm_top *)
1062 cal_block->cal_info;
1063 if ((cal_info->path == path) &&
1064 (cal_info->app_type == app_type) &&
1065 (cal_info->acdb_id == acdb_id)) {
1066 return cal_block;
1067 }
1068 }
1069 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1070 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001071 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301072}
1073
Vikram Panduranga770b8382017-09-27 12:17:36 -07001074/*
1075 * Retrieving cal_block will mark cal_block as stale.
1076 * Hence it cannot be reused or resent unless the flag
1077 * is reset.
1078 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301079static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1080 int be_id)
1081{
1082 int topology = NULL_COPP_TOPOLOGY;
1083 struct cal_block_data *cal_block = NULL;
1084 int app_type = 0, acdb_dev_id = 0;
1085
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301086 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1087 __func__, fedai_id, session_type, be_id);
1088
1089 if (cal_data == NULL)
1090 goto done;
1091
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301092 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1093 acdb_dev_id =
1094 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1095
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301096 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301097 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301098 acdb_dev_id,
1099 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001100 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301101 topology = ((struct audio_cal_info_adm_top *)
1102 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001103 cal_utils_mark_cal_used(cal_block);
1104 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1105 } else {
1106 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301107
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301108 pr_debug("%s: Check for LSM topology\n", __func__);
1109 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1110 cal_block = msm_routing_find_topology(session_type, app_type,
1111 acdb_dev_id,
1112 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001113 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301114 topology = ((struct audio_cal_info_adm_top *)
1115 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001116 cal_utils_mark_cal_used(cal_block);
1117 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301118 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1119 }
1120
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301121done:
1122 pr_debug("%s: Using topology %d\n", __func__, topology);
1123 return topology;
1124}
1125
1126static uint8_t is_be_dai_extproc(int be_dai)
1127{
1128 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1129 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1130 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1131 return 1;
1132 else
1133 return 0;
1134}
1135
1136static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1137 int path_type, int perf_mode,
1138 uint32_t passthr_mode)
1139{
1140 int i, port_type, j, num_copps = 0;
1141 struct route_payload payload;
1142
1143 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1144 path_type == ADM_PATH_COMPRESSED_RX) ?
1145 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1146
1147 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1148 if (!is_be_dai_extproc(i) &&
1149 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1150 (msm_bedais[i].active) &&
1151 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1152 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1153 unsigned long copp =
1154 session_copp_map[fedai_id][sess_type][i];
1155 if (test_bit(j, &copp)) {
1156 payload.port_id[num_copps] =
1157 msm_bedais[i].port_id;
1158 payload.copp_idx[num_copps] = j;
1159 payload.app_type[num_copps] =
1160 fe_dai_app_type_cfg
1161 [fedai_id][sess_type][i]
1162 .app_type;
1163 payload.acdb_dev_id[num_copps] =
1164 fe_dai_app_type_cfg
1165 [fedai_id][sess_type][i]
1166 .acdb_dev_id;
1167 payload.sample_rate[num_copps] =
1168 fe_dai_app_type_cfg
1169 [fedai_id][sess_type][i]
1170 .sample_rate;
1171 num_copps++;
1172 }
1173 }
1174 }
1175 }
1176
1177 if (num_copps) {
1178 payload.num_copps = num_copps;
1179 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1180 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1181 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1182 }
1183}
1184
1185void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1186 int stream_type)
1187{
1188 int i, session_type, path_type, port_type;
1189 u32 mode = 0;
1190
1191 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1192 /* bad ID assigned in machine driver */
1193 pr_err("%s: bad MM ID\n", __func__);
1194 return;
1195 }
1196
1197 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1198 session_type = SESSION_TYPE_RX;
1199 path_type = ADM_PATH_PLAYBACK;
1200 port_type = MSM_AFE_PORT_TYPE_RX;
1201 } else {
1202 session_type = SESSION_TYPE_TX;
1203 path_type = ADM_PATH_LIVE_REC;
1204 port_type = MSM_AFE_PORT_TYPE_TX;
1205 }
1206
1207 mutex_lock(&routing_lock);
1208
1209 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1210 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1211 if (!is_be_dai_extproc(i) &&
1212 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1213 (msm_bedais[i].active) &&
1214 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1215 mode = afe_get_port_type(msm_bedais[i].port_id);
1216 adm_connect_afe_port(mode, dspst_id,
1217 msm_bedais[i].port_id);
1218 break;
1219 }
1220 }
1221 mutex_unlock(&routing_lock);
1222}
1223
1224static bool route_check_fe_id_adm_support(int fe_id)
1225{
1226 bool rc = true;
1227
1228 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1229 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1230 /* fe id is listen while port is set to afe */
1231 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1232 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1233 __func__, fe_id, lsm_port_index);
1234 rc = false;
1235 }
1236 }
1237
1238 return rc;
1239}
1240
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001241/*
1242 * msm_pcm_routing_get_pp_ch_cnt:
1243 * Read the processed channel count
1244 *
1245 * @fe_id: Front end ID
1246 * @session_type: Inidicates RX or TX session type
1247 */
1248int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1249{
1250 struct msm_pcm_stream_app_type_cfg cfg_data;
1251 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301252 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001253
1254 memset(&cfg_data, 0, sizeof(cfg_data));
1255
1256 if (!is_mm_lsm_fe_id(fe_id)) {
1257 pr_err("%s: bad MM ID\n", __func__);
1258 return -EINVAL;
1259 }
1260
1261 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1262 &be_id, &cfg_data);
1263 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301264 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001265 return ret;
1266 }
1267
1268 app_type = cfg_data.app_type;
1269 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1270 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1271}
1272EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1273
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301274int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1275 int dspst_id, int stream_type,
1276 uint32_t passthr_mode)
1277{
1278 int i, j, session_type, path_type, port_type, topology;
1279 int num_copps = 0;
1280 struct route_payload payload;
1281 u32 channels, sample_rate;
1282 u16 bit_width = 16;
1283 bool is_lsm;
1284
1285 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1286 __func__, fe_id, perf_mode, dspst_id,
1287 stream_type, passthr_mode);
1288 if (!is_mm_lsm_fe_id(fe_id)) {
1289 /* bad ID assigned in machine driver */
1290 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1291 return -EINVAL;
1292 }
1293
1294 if (!route_check_fe_id_adm_support(fe_id)) {
1295 /* ignore adm open if not supported for fe_id */
1296 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1297 return 0;
1298 }
1299
1300 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1301 session_type = SESSION_TYPE_RX;
1302 if (passthr_mode != LEGACY_PCM)
1303 path_type = ADM_PATH_COMPRESSED_RX;
1304 else
1305 path_type = ADM_PATH_PLAYBACK;
1306 port_type = MSM_AFE_PORT_TYPE_RX;
1307 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1308 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301309 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301310 path_type = ADM_PATH_COMPRESSED_TX;
1311 else
1312 path_type = ADM_PATH_LIVE_REC;
1313 port_type = MSM_AFE_PORT_TYPE_TX;
1314 } else {
1315 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1316 return -EINVAL;
1317 }
1318
1319 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1320 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1321 mutex_lock(&routing_lock);
1322
1323 payload.num_copps = 0; /* only RX needs to use payload */
1324 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
1325 /* re-enable EQ if active */
1326 msm_qti_pp_send_eq_values(fe_id);
1327 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1328 if (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))
1329 msm_bedais[i].passthr_mode[fe_id] = passthr_mode;
1330
1331 if (!is_be_dai_extproc(i) &&
1332 (afe_get_port_type(msm_bedais[i].port_id) ==
1333 port_type) &&
1334 (msm_bedais[i].active) &&
1335 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1336 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1337
1338 /*
1339 * check if ADM needs to be configured with different
1340 * channel mapping than backend
1341 */
1342 if (!msm_bedais[i].adm_override_ch)
1343 channels = msm_bedais[i].channel;
1344 else
1345 channels = msm_bedais[i].adm_override_ch;
1346
1347 bit_width = msm_routing_get_bit_width(
1348 msm_bedais[i].format);
1349 app_type =
1350 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1351 if (app_type && is_lsm) {
1352 app_type_idx =
1353 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1354 sample_rate =
1355 fe_dai_app_type_cfg[fe_id][session_type][i]
1356 .sample_rate;
1357 bit_width =
1358 lsm_app_type_cfg[app_type_idx].bit_width;
1359 } else if (app_type) {
1360 app_type_idx =
1361 msm_pcm_routing_get_app_type_idx(
1362 app_type);
1363 sample_rate =
1364 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1365 bit_width =
1366 app_type_cfg[app_type_idx].bit_width;
1367 } else {
1368 sample_rate = msm_bedais[i].sample_rate;
1369 }
1370 acdb_dev_id =
1371 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1372 topology = msm_routing_get_adm_topology(fe_id,
1373 session_type,
1374 i);
1375 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1376 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001377 COMPRESSED_PASSTHROUGH_GEN)
1378 || (passthr_mode ==
1379 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301380 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1381 pr_debug("%s: Before adm open topology %d\n", __func__,
1382 topology);
1383
1384 copp_idx =
1385 adm_open(msm_bedais[i].port_id,
1386 path_type, sample_rate, channels,
1387 topology, perf_mode, bit_width,
1388 app_type, acdb_dev_id);
1389 if ((copp_idx < 0) ||
1390 (copp_idx >= MAX_COPPS_PER_PORT)) {
1391 pr_err("%s:adm open failed coppid:%d\n",
1392 __func__, copp_idx);
1393 mutex_unlock(&routing_lock);
1394 return -EINVAL;
1395 }
1396 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1397 __func__, fe_id, session_type, i);
1398 set_bit(copp_idx,
1399 &session_copp_map[fe_id][session_type][i]);
1400
1401 if (msm_is_resample_needed(
1402 sample_rate,
1403 msm_bedais[i].sample_rate))
1404 adm_copp_mfc_cfg(
1405 msm_bedais[i].port_id, copp_idx,
1406 msm_bedais[i].sample_rate);
1407
1408 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1409 unsigned long copp =
1410 session_copp_map[fe_id][session_type][i];
1411 if (test_bit(j, &copp)) {
1412 payload.port_id[num_copps] =
1413 msm_bedais[i].port_id;
1414 payload.copp_idx[num_copps] = j;
1415 payload.app_type[num_copps] =
1416 fe_dai_app_type_cfg
1417 [fe_id][session_type][i]
1418 .app_type;
1419 payload.acdb_dev_id[num_copps] =
1420 fe_dai_app_type_cfg
1421 [fe_id][session_type][i]
1422 .acdb_dev_id;
1423 payload.sample_rate[num_copps] =
1424 fe_dai_app_type_cfg
1425 [fe_id][session_type][i]
1426 .sample_rate;
1427 num_copps++;
1428 }
1429 }
1430 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001431 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301432 && passthr_mode !=
Ralf Herzc8701f72018-06-20 11:37:35 +02001433 COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301434 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001435 msm_bedais[i].port_id,
1436 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301437 }
1438 }
1439 if (num_copps) {
1440 payload.num_copps = num_copps;
1441 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1442 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1443 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1444 }
1445 mutex_unlock(&routing_lock);
1446 return 0;
1447}
1448
1449static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1450{
1451 u32 session_id;
1452
1453 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301454 case MSM_FRONTEND_DAI_QCHAT:
1455 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1456 break;
1457 case MSM_FRONTEND_DAI_VOIP:
1458 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1459 break;
1460 case MSM_FRONTEND_DAI_VOICEMMODE1:
1461 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1462 break;
1463 case MSM_FRONTEND_DAI_VOICEMMODE2:
1464 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1465 break;
1466 default:
1467 session_id = 0;
1468 }
1469
1470 pr_debug("%s session_id 0x%x", __func__, session_id);
1471 return session_id;
1472}
1473
1474static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1475 int dspst_id, int stream_type)
1476{
1477 int copp_idx = 0;
1478 int sess_type = 0;
1479 int i = 0, j = 0, be_id;
1480 int ret = 0;
1481
1482 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1483 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1484 return 0;
1485 }
1486
1487 if (!(channel_mixer[fe_id].enable)) {
1488 pr_debug("%s: channel mixer not enabled for FE %d\n",
1489 __func__, fe_id);
1490 return 0;
1491 }
1492
1493 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1494 sess_type = SESSION_TYPE_RX;
1495 else
1496 sess_type = SESSION_TYPE_TX;
1497
1498 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1499 ++i) {
1500 be_id = channel_input[fe_id][i] - 1;
1501 channel_mixer[fe_id].input_channels[i] =
1502 msm_bedais[be_id].channel;
1503
1504 if ((msm_bedais[be_id].active) &&
1505 test_bit(fe_id,
1506 &msm_bedais[be_id].fe_sessions[0])) {
1507 unsigned long copp =
1508 session_copp_map[fe_id][sess_type][be_id];
1509 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1510 if (test_bit(j, &copp)) {
1511 copp_idx = j;
1512 break;
1513 }
1514 }
1515
1516 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1517 __func__,
1518 fe_id, be_id, msm_bedais[be_id].channel,
1519 copp_idx);
1520 ret = adm_programable_channel_mixer(
1521 msm_bedais[be_id].port_id,
1522 copp_idx, dspst_id, sess_type,
1523 channel_mixer + fe_id, i);
1524 }
1525 }
1526
1527 return ret;
1528}
1529
1530int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1531 int dspst_id, int stream_type)
1532{
1533 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1534 struct route_payload payload;
1535 u32 channels, sample_rate;
1536 uint16_t bits_per_sample = 16;
1537 uint32_t passthr_mode = LEGACY_PCM;
1538 int ret = 0;
1539
1540 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1541 /* bad ID assigned in machine driver */
1542 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1543 return -EINVAL;
1544 }
1545
1546 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1547 session_type = SESSION_TYPE_RX;
1548 path_type = ADM_PATH_PLAYBACK;
1549 port_type = MSM_AFE_PORT_TYPE_RX;
1550 } else {
1551 session_type = SESSION_TYPE_TX;
1552 path_type = ADM_PATH_LIVE_REC;
1553 port_type = MSM_AFE_PORT_TYPE_TX;
1554 }
1555
1556 mutex_lock(&routing_lock);
1557
1558 payload.num_copps = 0; /* only RX needs to use payload */
1559 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1560 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
1561
1562 /* re-enable EQ if active */
1563 msm_qti_pp_send_eq_values(fedai_id);
1564 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1565 if (!is_be_dai_extproc(i) &&
1566 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1567 (msm_bedais[i].active) &&
1568 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1569 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1570 /*
1571 * check if ADM needs to be configured with different
1572 * channel mapping than backend
1573 */
1574 if (!msm_bedais[i].adm_override_ch)
1575 channels = msm_bedais[i].channel;
1576 else
1577 channels = msm_bedais[i].adm_override_ch;
1578 msm_bedais[i].passthr_mode[fedai_id] =
1579 LEGACY_PCM;
1580
1581 bits_per_sample = msm_routing_get_bit_width(
1582 msm_bedais[i].format);
1583
1584 app_type =
1585 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1586 if (app_type) {
1587 app_type_idx =
1588 msm_pcm_routing_get_app_type_idx(app_type);
1589 sample_rate =
1590 fe_dai_app_type_cfg[fedai_id][session_type][i]
1591 .sample_rate;
1592 bits_per_sample =
1593 app_type_cfg[app_type_idx].bit_width;
1594 } else
1595 sample_rate = msm_bedais[i].sample_rate;
1596
1597 acdb_dev_id =
1598 fe_dai_app_type_cfg[fedai_id][session_type][i]
1599 .acdb_dev_id;
1600 topology = msm_routing_get_adm_topology(fedai_id,
1601 session_type,
1602 i);
1603 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1604 sample_rate, channels, topology,
1605 perf_mode, bits_per_sample,
1606 app_type, acdb_dev_id);
1607 if ((copp_idx < 0) ||
1608 (copp_idx >= MAX_COPPS_PER_PORT)) {
1609 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001610 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301611 mutex_unlock(&routing_lock);
1612 return -EINVAL;
1613 }
1614 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1615 __func__, fedai_id, session_type, i);
1616 set_bit(copp_idx,
1617 &session_copp_map[fedai_id][session_type][i]);
1618
1619 if (msm_is_resample_needed(
1620 sample_rate,
1621 msm_bedais[i].sample_rate))
1622 adm_copp_mfc_cfg(
1623 msm_bedais[i].port_id, copp_idx,
1624 msm_bedais[i].sample_rate);
1625
1626 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1627 unsigned long copp =
1628 session_copp_map[fedai_id][session_type][i];
1629 if (test_bit(j, &copp)) {
1630 payload.port_id[num_copps] =
1631 msm_bedais[i].port_id;
1632 payload.copp_idx[num_copps] = j;
1633 payload.app_type[num_copps] =
1634 fe_dai_app_type_cfg
1635 [fedai_id][session_type]
1636 [i].app_type;
1637 payload.acdb_dev_id[num_copps] =
1638 fe_dai_app_type_cfg
1639 [fedai_id][session_type]
1640 [i].acdb_dev_id;
1641 payload.sample_rate[num_copps] =
1642 fe_dai_app_type_cfg
1643 [fedai_id][session_type]
1644 [i].sample_rate;
1645 num_copps++;
1646 }
1647 }
1648 if ((perf_mode == LEGACY_PCM_MODE) &&
1649 (msm_bedais[i].passthr_mode[fedai_id] ==
1650 LEGACY_PCM))
1651 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
1652 copp_idx, topology,
1653 channels);
1654 }
1655 }
1656 if (num_copps) {
1657 payload.num_copps = num_copps;
1658 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1659 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1660 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1661 }
1662
1663 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1664 dspst_id, stream_type);
1665 mutex_unlock(&routing_lock);
1666 return ret;
1667}
1668
1669int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1670 int dspst_id, int stream_type,
1671 struct msm_pcm_routing_evt event_info)
1672{
1673 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1674 stream_type)) {
1675 pr_err("%s: failed to reg phy stream\n", __func__);
1676 return -EINVAL;
1677 }
1678
1679 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1680 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1681 else
1682 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1683 return 0;
1684}
1685
1686void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1687{
1688 int i, port_type, session_type, path_type, topology;
1689 struct msm_pcm_routing_fdai_data *fdai;
1690
1691 if (!is_mm_lsm_fe_id(fedai_id)) {
1692 /* bad ID assigned in machine driver */
1693 pr_err("%s: bad MM ID\n", __func__);
1694 return;
1695 }
1696
1697 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1698 port_type = MSM_AFE_PORT_TYPE_RX;
1699 session_type = SESSION_TYPE_RX;
1700 path_type = ADM_PATH_PLAYBACK;
1701 } else {
1702 port_type = MSM_AFE_PORT_TYPE_TX;
1703 session_type = SESSION_TYPE_TX;
1704 path_type = ADM_PATH_LIVE_REC;
1705 }
1706
1707 mutex_lock(&routing_lock);
1708 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1709 if (!is_be_dai_extproc(i) &&
1710 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1711 (msm_bedais[i].active) &&
1712 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1713 int idx;
1714 unsigned long copp =
1715 session_copp_map[fedai_id][session_type][i];
1716 fdai = &fe_dai_map[fedai_id][session_type];
1717
1718 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1719 if (test_bit(idx, &copp))
1720 break;
1721
1722 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1723 pr_debug("%s: copp idx is invalid, exiting\n",
1724 __func__);
1725 continue;
1726 }
1727 topology = adm_get_topology_for_port_copp_idx(
1728 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001729 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301730 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1731 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1732 __func__, copp, fedai_id, session_type, i);
1733 clear_bit(idx,
1734 &session_copp_map[fedai_id][session_type][i]);
1735 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1736 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1737 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1738 (msm_bedais[i].passthr_mode[fedai_id] ==
1739 LEGACY_PCM))
1740 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1741 topology);
1742 }
1743 }
1744
1745 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1746 fe_dai_map[fedai_id][session_type].be_srate = 0;
1747 mutex_unlock(&routing_lock);
1748}
1749
1750/* Check if FE/BE route is set */
1751static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1752{
1753 bool rc = false;
1754
1755 if (!is_mm_lsm_fe_id(fe_id)) {
1756 /* recheck FE ID in the mixer control defined in this file */
1757 pr_err("%s: bad MM ID\n", __func__);
1758 return rc;
1759 }
1760
1761 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1762 rc = true;
1763
1764 return rc;
1765}
1766
1767static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1768{
1769 int session_type, path_type, topology;
1770 u32 channels, sample_rate;
1771 uint16_t bits_per_sample = 16;
1772 struct msm_pcm_routing_fdai_data *fdai;
1773 uint32_t passthr_mode;
1774 bool is_lsm;
1775
1776 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1777
1778 if (!is_mm_lsm_fe_id(val)) {
1779 /* recheck FE ID in the mixer control defined in this file */
1780 pr_err("%s: bad MM ID\n", __func__);
1781 return;
1782 }
1783
1784 if (!route_check_fe_id_adm_support(val)) {
1785 /* ignore adm open if not supported for fe_id */
1786 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1787 return;
1788 }
1789
1790 passthr_mode = msm_bedais[reg].passthr_mode[val];
1791 if (afe_get_port_type(msm_bedais[reg].port_id) ==
1792 MSM_AFE_PORT_TYPE_RX) {
1793 session_type = SESSION_TYPE_RX;
1794 if (passthr_mode != LEGACY_PCM)
1795 path_type = ADM_PATH_COMPRESSED_RX;
1796 else
1797 path_type = ADM_PATH_PLAYBACK;
1798 } else {
1799 session_type = SESSION_TYPE_TX;
Ralf Herzc8701f72018-06-20 11:37:35 +02001800 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301801 path_type = ADM_PATH_COMPRESSED_TX;
1802 else
1803 path_type = ADM_PATH_LIVE_REC;
1804 }
1805 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1806 (val <= MSM_FRONTEND_DAI_LSM8);
1807
1808 mutex_lock(&routing_lock);
1809 if (set) {
1810 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1811 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1812 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1813 voc_start_playback(set, msm_bedais[reg].port_id);
1814
1815 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1816 fdai = &fe_dai_map[val][session_type];
1817 if (msm_bedais[reg].active && fdai->strm_id !=
1818 INVALID_SESSION) {
1819 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1820 /*
1821 * check if ADM needs to be configured with different
1822 * channel mapping than backend
1823 */
1824 if (!msm_bedais[reg].adm_override_ch)
1825 channels = msm_bedais[reg].channel;
1826 else
1827 channels = msm_bedais[reg].adm_override_ch;
1828 if (session_type == SESSION_TYPE_TX &&
1829 fdai->be_srate &&
1830 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1831 pr_debug("%s: flush strm %d diff BE rates\n",
1832 __func__, fdai->strm_id);
1833
1834 if (fdai->event_info.event_func)
1835 fdai->event_info.event_func(
1836 MSM_PCM_RT_EVT_BUF_RECFG,
1837 fdai->event_info.priv_data);
1838 fdai->be_srate = 0; /* might not need it */
1839 }
1840
1841 bits_per_sample = msm_routing_get_bit_width(
1842 msm_bedais[reg].format);
1843
1844 app_type =
1845 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1846 if (app_type && is_lsm) {
1847 app_type_idx =
1848 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1849 sample_rate =
1850 fe_dai_app_type_cfg[val][session_type][reg]
1851 .sample_rate;
1852 bits_per_sample =
1853 lsm_app_type_cfg[app_type_idx].bit_width;
1854 } else if (app_type) {
1855 app_type_idx =
1856 msm_pcm_routing_get_app_type_idx(app_type);
1857 sample_rate =
1858 fe_dai_app_type_cfg[val][session_type][reg]
1859 .sample_rate;
1860 bits_per_sample =
1861 app_type_cfg[app_type_idx].bit_width;
1862 } else
1863 sample_rate = msm_bedais[reg].sample_rate;
1864
1865 topology = msm_routing_get_adm_topology(val,
1866 session_type,
1867 reg);
1868 acdb_dev_id =
1869 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1870 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1871 sample_rate, channels, topology,
1872 fdai->perf_mode, bits_per_sample,
1873 app_type, acdb_dev_id);
1874 if ((copp_idx < 0) ||
1875 (copp_idx >= MAX_COPPS_PER_PORT)) {
1876 pr_err("%s: adm open failed\n", __func__);
1877 mutex_unlock(&routing_lock);
1878 return;
1879 }
1880 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1881 __func__, val, session_type, reg);
1882 set_bit(copp_idx,
1883 &session_copp_map[val][session_type][reg]);
1884
1885 if (msm_is_resample_needed(
1886 sample_rate,
1887 msm_bedais[reg].sample_rate))
1888 adm_copp_mfc_cfg(
1889 msm_bedais[reg].port_id, copp_idx,
1890 msm_bedais[reg].sample_rate);
1891
1892 if (session_type == SESSION_TYPE_RX &&
1893 fdai->event_info.event_func)
1894 fdai->event_info.event_func(
1895 MSM_PCM_RT_EVT_DEVSWITCH,
1896 fdai->event_info.priv_data);
1897
1898 msm_pcm_routing_build_matrix(val, session_type,
1899 path_type,
1900 fdai->perf_mode,
1901 passthr_mode);
1902 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1903 (passthr_mode == LEGACY_PCM))
1904 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1905 copp_idx, topology,
1906 channels);
1907 }
1908 } else {
1909 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1910 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1911 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1912 voc_start_playback(set, msm_bedais[reg].port_id);
1913 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
1914 fdai = &fe_dai_map[val][session_type];
1915 if (msm_bedais[reg].active && fdai->strm_id !=
1916 INVALID_SESSION) {
1917 int idx;
1918 int port_id;
1919 unsigned long copp =
1920 session_copp_map[val][session_type][reg];
1921 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1922 if (test_bit(idx, &copp))
1923 break;
1924
1925 port_id = msm_bedais[reg].port_id;
1926 topology = adm_get_topology_for_port_copp_idx(port_id,
1927 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001928 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301929 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1930 idx);
1931 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1932 __func__, copp, val, session_type, reg,
1933 topology);
1934 clear_bit(idx,
1935 &session_copp_map[val][session_type][reg]);
1936 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1937 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1938 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1939 (passthr_mode == LEGACY_PCM))
1940 msm_pcm_routing_deinit_pp(
1941 msm_bedais[reg].port_id,
1942 topology);
1943 msm_pcm_routing_build_matrix(val, session_type,
1944 path_type,
1945 fdai->perf_mode,
1946 passthr_mode);
1947 }
1948 }
1949 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1950 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1951 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1952
1953 mutex_unlock(&routing_lock);
1954}
1955
1956static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1957 struct snd_ctl_elem_value *ucontrol)
1958{
1959 struct soc_mixer_control *mc =
1960 (struct soc_mixer_control *)kcontrol->private_value;
1961
Meng Wang05d5e9a2018-03-28 16:45:03 +08001962 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301963 ucontrol->value.integer.value[0] = 1;
1964 else
1965 ucontrol->value.integer.value[0] = 0;
1966
Meng Wang05d5e9a2018-03-28 16:45:03 +08001967 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301968 ucontrol->value.integer.value[0]);
1969
1970 return 0;
1971}
1972
1973static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1974 struct snd_ctl_elem_value *ucontrol)
1975{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301976 struct snd_soc_dapm_widget *widget =
1977 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301978 struct soc_mixer_control *mc =
1979 (struct soc_mixer_control *)kcontrol->private_value;
1980 struct snd_soc_dapm_update *update = NULL;
1981
1982 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001983 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1984 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301985 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1986 update);
1987 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001988 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1989 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301990 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1991 update);
1992 }
1993
1994 return 1;
1995}
1996
1997static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
1998 struct snd_ctl_elem_value *ucontrol)
1999{
2000 struct soc_mixer_control *mc =
2001 (struct soc_mixer_control *)kcontrol->private_value;
2002
Meng Wang05d5e9a2018-03-28 16:45:03 +08002003 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302004 ucontrol->value.integer.value[0] = 1;
2005 else
2006 ucontrol->value.integer.value[0] = 0;
2007
Meng Wang05d5e9a2018-03-28 16:45:03 +08002008 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302009 ucontrol->value.integer.value[0]);
2010
2011 return 0;
2012}
2013
2014static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2015 struct snd_ctl_elem_value *ucontrol)
2016{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302017 struct snd_soc_dapm_widget *widget =
2018 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302019 struct soc_mixer_control *mc =
2020 (struct soc_mixer_control *)kcontrol->private_value;
2021 struct snd_soc_dapm_update *update = NULL;
2022
Meng Wang05d5e9a2018-03-28 16:45:03 +08002023 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302024 ucontrol->value.integer.value[0]);
2025
2026 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002027 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2028 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302029 snd_soc_dapm_mixer_update_power(widget->dapm,
2030 kcontrol, 1, update);
2031 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002032 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2033 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302034 snd_soc_dapm_mixer_update_power(widget->dapm,
2035 kcontrol, 0, update);
2036 }
2037
2038 return 1;
2039}
2040
2041static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2042{
2043 u32 session_id = 0;
2044 u16 path_type;
2045 struct media_format_info voc_be_media_format;
2046
2047 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2048
2049 session_id = msm_pcm_routing_get_voc_sessionid(val);
2050
2051 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2052 __func__, val, session_id);
2053
2054 mutex_lock(&routing_lock);
2055
2056 if (set)
2057 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2058 else
2059 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2060
2061 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2062 afe_get_port_type(msm_bedais[reg].port_id) ==
2063 MSM_AFE_PORT_TYPE_RX) {
2064 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2065 __func__, set, msm_bedais[reg].port_id);
2066 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2067 }
2068
2069 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2070 MSM_AFE_PORT_TYPE_RX)
2071 path_type = RX_PATH;
2072 else
2073 path_type = TX_PATH;
2074
2075 if (set) {
2076 if (msm_bedais[reg].active) {
2077 voc_set_route_flag(session_id, path_type, 1);
2078
2079 memset(&voc_be_media_format, 0,
2080 sizeof(struct media_format_info));
2081
2082 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2083 voc_be_media_format.num_channels =
2084 msm_bedais[reg].channel;
2085 voc_be_media_format.sample_rate =
2086 msm_bedais[reg].sample_rate;
2087 voc_be_media_format.bits_per_sample =
2088 msm_bedais[reg].format;
2089 /* Defaulting this to 1 for voice call usecases */
2090 voc_be_media_format.channel_mapping[0] = 1;
2091
2092 voc_set_device_config(session_id, path_type,
2093 &voc_be_media_format);
2094
2095 if (voc_get_route_flag(session_id, TX_PATH) &&
2096 voc_get_route_flag(session_id, RX_PATH))
2097 voc_enable_device(session_id);
2098 } else {
2099 pr_debug("%s BE is not active\n", __func__);
2100 }
2101 } else {
2102 voc_set_route_flag(session_id, path_type, 0);
2103 voc_disable_device(session_id);
2104 }
2105
2106 mutex_unlock(&routing_lock);
2107
2108}
2109
2110static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2111 struct snd_ctl_elem_value *ucontrol)
2112{
2113 struct soc_mixer_control *mc =
2114 (struct soc_mixer_control *)kcontrol->private_value;
2115
2116 mutex_lock(&routing_lock);
2117
Meng Wang05d5e9a2018-03-28 16:45:03 +08002118 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302119 ucontrol->value.integer.value[0] = 1;
2120 else
2121 ucontrol->value.integer.value[0] = 0;
2122
2123 mutex_unlock(&routing_lock);
2124
Meng Wang05d5e9a2018-03-28 16:45:03 +08002125 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302126 ucontrol->value.integer.value[0]);
2127
2128 return 0;
2129}
2130
2131static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2132 struct snd_ctl_elem_value *ucontrol)
2133{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302134 struct snd_soc_dapm_widget *widget =
2135 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302136 struct soc_mixer_control *mc =
2137 (struct soc_mixer_control *)kcontrol->private_value;
2138 struct snd_soc_dapm_update *update = NULL;
2139
2140 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002141 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302142 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2143 update);
2144 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002145 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302146 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2147 update);
2148 }
2149
2150 return 1;
2151}
2152
2153static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2154 struct snd_ctl_elem_value *ucontrol)
2155{
2156 struct soc_mixer_control *mc =
2157 (struct soc_mixer_control *)kcontrol->private_value;
2158
2159 mutex_lock(&routing_lock);
2160
Meng Wang05d5e9a2018-03-28 16:45:03 +08002161 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302162 ucontrol->value.integer.value[0] = 1;
2163 else
2164 ucontrol->value.integer.value[0] = 0;
2165
2166 mutex_unlock(&routing_lock);
2167
Meng Wang05d5e9a2018-03-28 16:45:03 +08002168 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302169 ucontrol->value.integer.value[0]);
2170
2171 return 0;
2172}
2173
2174static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2175 struct snd_ctl_elem_value *ucontrol)
2176{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302177 struct snd_soc_dapm_widget *widget =
2178 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302179 struct soc_mixer_control *mc =
2180 (struct soc_mixer_control *)kcontrol->private_value;
2181 struct snd_soc_dapm_update *update = NULL;
2182
2183 if (ucontrol->value.integer.value[0]) {
2184 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002185 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302186 mutex_unlock(&routing_lock);
2187
2188 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2189 update);
2190 } else {
2191 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002192 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302193 mutex_unlock(&routing_lock);
2194
2195 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2196 update);
2197 }
2198
Meng Wang05d5e9a2018-03-28 16:45:03 +08002199 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302200 ucontrol->value.integer.value[0]);
2201
2202 return 1;
2203}
2204
2205/*
2206 * Return the mapping between port ID and backend ID to enable the AFE callback
2207 * to determine the acdb_dev_id from the port id
2208 */
2209int msm_pcm_get_be_id_from_port_id(int port_id)
2210{
2211 int i;
2212 int be_id = -EINVAL;
2213
2214 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2215 if (msm_bedais[i].port_id == port_id) {
2216 be_id = i;
2217 break;
2218 }
2219 }
2220
2221 return be_id;
2222}
2223
2224/*
2225 * Return the registered dev_acdb_id given a port ID to enable identifying the
2226 * correct AFE calibration information by comparing the header information.
2227 */
2228static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2229{
2230 int acdb_id = -EINVAL;
2231 int i = 0;
2232 int session;
2233 int port_type = afe_get_port_type(port_id);
2234 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2235
2236 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2237 __func__, port_id, be_id, port_type);
2238
2239 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2240 session = SESSION_TYPE_TX;
2241 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2242 session = SESSION_TYPE_RX;
2243 } else {
2244 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2245 acdb_id = -EINVAL;
2246 goto exit;
2247 }
2248
2249 if (be_id < 0) {
2250 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2251 goto exit;
2252 }
2253
2254 mutex_lock(&routing_lock);
2255 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2256 MSM_FRONTEND_DAI_MAX);
2257 if (i < MSM_FRONTEND_DAI_MAX)
2258 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2259
2260 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2261 __func__, i, session, be_id, acdb_id);
2262 mutex_unlock(&routing_lock);
2263exit:
2264 return acdb_id;
2265}
2266
2267static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2268 struct snd_ctl_elem_value *ucontrol)
2269{
2270 ucontrol->value.integer.value[0] = fm_switch_enable;
2271 pr_debug("%s: FM Switch enable %ld\n", __func__,
2272 ucontrol->value.integer.value[0]);
2273 return 0;
2274}
2275
2276static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2277 struct snd_ctl_elem_value *ucontrol)
2278{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302279 struct snd_soc_dapm_widget *widget =
2280 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302281 struct snd_soc_dapm_update *update = NULL;
2282
2283 pr_debug("%s: FM Switch enable %ld\n", __func__,
2284 ucontrol->value.integer.value[0]);
2285 if (ucontrol->value.integer.value[0])
2286 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2287 update);
2288 else
2289 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2290 update);
2291 fm_switch_enable = ucontrol->value.integer.value[0];
2292 return 1;
2293}
2294
2295static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2296 struct snd_ctl_elem_value *ucontrol)
2297{
2298 ucontrol->value.integer.value[0] = hfp_switch_enable;
2299 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2300 ucontrol->value.integer.value[0]);
2301 return 0;
2302}
2303
2304static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2305 struct snd_ctl_elem_value *ucontrol)
2306{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302307 struct snd_soc_dapm_widget *widget =
2308 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302309 struct snd_soc_dapm_update *update = NULL;
2310
2311 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2312 ucontrol->value.integer.value[0]);
2313 if (ucontrol->value.integer.value[0])
2314 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2315 1, update);
2316 else
2317 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2318 0, update);
2319 hfp_switch_enable = ucontrol->value.integer.value[0];
2320 return 1;
2321}
2322
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002323static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2324 struct snd_ctl_elem_value *ucontrol)
2325{
2326 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2327 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2328 ucontrol->value.integer.value[0]);
2329 return 0;
2330}
2331
2332static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2333 struct snd_ctl_elem_value *ucontrol)
2334{
2335 struct snd_soc_dapm_widget *widget =
2336 snd_soc_dapm_kcontrol_widget(kcontrol);
2337 struct snd_soc_dapm_update *update = NULL;
2338
2339 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2340 ucontrol->value.integer.value[0]);
2341 a2dp_switch_enable = ucontrol->value.integer.value[0];
2342 if (a2dp_switch_enable)
2343 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2344 1, update);
2345 else
2346 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2347 0, update);
2348 return 1;
2349}
2350
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302351static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2352 struct snd_ctl_elem_value *ucontrol)
2353{
2354 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2355 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2356 ucontrol->value.integer.value[0]);
2357 return 0;
2358}
2359
2360static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2361 struct snd_ctl_elem_value *ucontrol)
2362{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302363 struct snd_soc_dapm_widget *widget =
2364 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302365 struct snd_soc_dapm_update *update = NULL;
2366
2367 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2368 ucontrol->value.integer.value[0]);
2369 if (ucontrol->value.integer.value[0])
2370 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2371 update);
2372 else
2373 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2374 update);
2375 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2376 return 1;
2377}
2378
2379static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2380 struct snd_ctl_elem_value *ucontrol)
2381{
2382 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2383 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2384 ucontrol->value.integer.value[0]);
2385 return 0;
2386}
2387
2388static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2389 struct snd_ctl_elem_value *ucontrol)
2390{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302391 struct snd_soc_dapm_widget *widget =
2392 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302393 struct snd_soc_dapm_update *update = NULL;
2394
2395 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2396 ucontrol->value.integer.value[0]);
2397 if (ucontrol->value.integer.value[0])
2398 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2399 update);
2400 else
2401 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2402 update);
2403 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2404 return 1;
2405}
2406
2407static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2408 struct snd_ctl_elem_value *ucontrol)
2409{
2410 ucontrol->value.integer.value[0] = usb_switch_enable;
2411 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2412 ucontrol->value.integer.value[0]);
2413 return 0;
2414}
2415
2416static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2417 struct snd_ctl_elem_value *ucontrol)
2418{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302419 struct snd_soc_dapm_widget *widget =
2420 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302421 struct snd_soc_dapm_update *update = NULL;
2422
2423 pr_debug("%s: USB Switch enable %ld\n", __func__,
2424 ucontrol->value.integer.value[0]);
2425 if (ucontrol->value.integer.value[0])
2426 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2427 1, update);
2428 else
2429 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2430 0, update);
2431 usb_switch_enable = ucontrol->value.integer.value[0];
2432 return 1;
2433}
2434
2435static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2436 struct snd_ctl_elem_value *ucontrol)
2437{
2438 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2439 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2440 ucontrol->value.integer.value[0]);
2441 return 0;
2442}
2443
2444static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2445 struct snd_ctl_elem_value *ucontrol)
2446{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302447 struct snd_soc_dapm_widget *widget =
2448 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302449 struct snd_soc_dapm_update *update = NULL;
2450
2451 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2452 ucontrol->value.integer.value[0]);
2453 if (ucontrol->value.integer.value[0])
2454 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2455 update);
2456 else
2457 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2458 update);
2459 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2460 return 1;
2461}
2462
2463static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2464 struct snd_ctl_elem_value *ucontrol)
2465{
2466 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2467 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2468 ucontrol->value.integer.value[0]);
2469 return 0;
2470}
2471
2472static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2473 struct snd_ctl_elem_value *ucontrol)
2474{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302475 struct snd_soc_dapm_widget *widget =
2476 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302477 struct snd_soc_dapm_update *update = NULL;
2478
2479 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2480 ucontrol->value.integer.value[0]);
2481 if (ucontrol->value.integer.value[0])
2482 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2483 update);
2484 else
2485 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2486 update);
2487 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2488 return 1;
2489}
2490
2491static int msm_routing_get_tert_mi2s_switch_mixer(
2492 struct snd_kcontrol *kcontrol,
2493 struct snd_ctl_elem_value *ucontrol)
2494{
2495 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2496 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2497 ucontrol->value.integer.value[0]);
2498 return 0;
2499}
2500
2501static int msm_routing_put_tert_mi2s_switch_mixer(
2502 struct snd_kcontrol *kcontrol,
2503 struct snd_ctl_elem_value *ucontrol)
2504{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302505 struct snd_soc_dapm_widget *widget =
2506 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302507 struct snd_soc_dapm_update *update = NULL;
2508
2509 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2510 ucontrol->value.integer.value[0]);
2511 if (ucontrol->value.integer.value[0])
2512 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2513 update);
2514 else
2515 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2516 update);
2517 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2518 return 1;
2519}
2520
2521static int msm_routing_get_quat_mi2s_switch_mixer(
2522 struct snd_kcontrol *kcontrol,
2523 struct snd_ctl_elem_value *ucontrol)
2524{
2525 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2526 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2527 ucontrol->value.integer.value[0]);
2528 return 0;
2529}
2530
2531static int msm_routing_put_quat_mi2s_switch_mixer(
2532 struct snd_kcontrol *kcontrol,
2533 struct snd_ctl_elem_value *ucontrol)
2534{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302535 struct snd_soc_dapm_widget *widget =
2536 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302537 struct snd_soc_dapm_update *update = NULL;
2538
2539 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2540 ucontrol->value.integer.value[0]);
2541 if (ucontrol->value.integer.value[0])
2542 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2543 update);
2544 else
2545 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2546 update);
2547 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2548 return 1;
2549}
2550
Rohit Kumara5077932017-09-10 22:05:05 +05302551static int msm_routing_get_quin_mi2s_switch_mixer(
2552 struct snd_kcontrol *kcontrol,
2553 struct snd_ctl_elem_value *ucontrol)
2554{
2555 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2556 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2557 ucontrol->value.integer.value[0]);
2558 return 0;
2559}
2560
2561static int msm_routing_put_quin_mi2s_switch_mixer(
2562 struct snd_kcontrol *kcontrol,
2563 struct snd_ctl_elem_value *ucontrol)
2564{
2565 struct snd_soc_dapm_widget *widget =
2566 snd_soc_dapm_kcontrol_widget(kcontrol);
2567 struct snd_soc_dapm_update *update = NULL;
2568
2569 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2570 ucontrol->value.integer.value[0]);
2571 if (ucontrol->value.integer.value[0])
2572 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2573 update);
2574 else
2575 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2576 update);
2577 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2578 return 1;
2579}
2580
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302581static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2582 struct snd_ctl_elem_value *ucontrol)
2583{
2584 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2585 pr_debug("%s: FM Switch enable %ld\n", __func__,
2586 ucontrol->value.integer.value[0]);
2587 return 0;
2588}
2589
2590static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2591 struct snd_ctl_elem_value *ucontrol)
2592{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302593 struct snd_soc_dapm_widget *widget =
2594 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302595 struct snd_soc_dapm_update *update = NULL;
2596
2597 pr_debug("%s: FM Switch enable %ld\n", __func__,
2598 ucontrol->value.integer.value[0]);
2599 if (ucontrol->value.integer.value[0])
2600 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2601 update);
2602 else
2603 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2604 update);
2605 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2606 return 1;
2607}
2608
2609static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2610 struct snd_ctl_elem_value *ucontrol)
2611{
2612 ucontrol->value.integer.value[0] = lsm_port_index;
2613 return 0;
2614}
2615
2616static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2617 struct snd_ctl_elem_value *ucontrol)
2618{
2619 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2620 int mux = ucontrol->value.enumerated.item[0];
2621 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2622
2623 if (mux >= e->items) {
2624 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2625 return -EINVAL;
2626 }
2627
2628 pr_debug("%s: LSM enable %ld\n", __func__,
2629 ucontrol->value.integer.value[0]);
2630 switch (ucontrol->value.integer.value[0]) {
2631 case 1:
2632 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2633 break;
2634 case 2:
2635 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2636 break;
2637 case 3:
2638 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2639 break;
2640 case 4:
2641 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2642 break;
2643 case 5:
2644 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2645 break;
2646 case 6:
2647 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2648 break;
2649 case 7:
2650 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2651 break;
2652 case 8:
2653 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2654 break;
2655 case 9:
2656 lsm_port = ADM_LSM_PORT_ID;
2657 break;
2658 case 10:
2659 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2660 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302661 case 11:
2662 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2663 break;
2664 case 12:
2665 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2666 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302667 default:
2668 pr_err("Default lsm port");
2669 break;
2670 }
2671 set_lsm_port(lsm_port);
2672 lsm_port_index = ucontrol->value.integer.value[0];
2673
2674 return 0;
2675}
2676
2677static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2678 struct snd_ctl_elem_value *ucontrol)
2679{
2680 int i;
2681 u16 port_id;
2682 enum afe_mad_type mad_type;
2683
2684 pr_debug("%s: enter\n", __func__);
2685 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2686 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2687 strlen(lsm_port_text[i])))
2688 break;
2689
2690 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2691 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2692 return -EINVAL;
2693 }
2694
2695 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2696
2697 /*Check for Tertiary/Quaternary/INT3 TX port*/
2698 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2699 strlen(lsm_port_text[7])))
2700 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2701
2702 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2703 strlen(lsm_port_text[8])))
2704 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2705
2706 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2707 strlen(lsm_port_text[10])))
2708 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2709
2710 mad_type = afe_port_get_mad_type(port_id);
2711 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2712 mad_type);
2713 switch (mad_type) {
2714 case MAD_HW_NONE:
2715 ucontrol->value.integer.value[0] = MADNONE;
2716 break;
2717 case MAD_HW_AUDIO:
2718 ucontrol->value.integer.value[0] = MADAUDIO;
2719 break;
2720 case MAD_HW_BEACON:
2721 ucontrol->value.integer.value[0] = MADBEACON;
2722 break;
2723 case MAD_HW_ULTRASOUND:
2724 ucontrol->value.integer.value[0] = MADULTRASOUND;
2725 break;
2726 case MAD_SW_AUDIO:
2727 ucontrol->value.integer.value[0] = MADSWAUDIO;
2728 break;
2729 default:
2730 WARN(1, "Unknown\n");
2731 return -EINVAL;
2732 }
2733 return 0;
2734}
2735
2736static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2737 struct snd_ctl_elem_value *ucontrol)
2738{
2739 int i;
2740 u16 port_id;
2741 enum afe_mad_type mad_type;
2742
2743 pr_debug("%s: enter\n", __func__);
2744 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2745 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2746 strlen(lsm_port_text[i])))
2747 break;
2748
2749 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2750 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2751 return -EINVAL;
2752 }
2753
2754 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2755 switch (ucontrol->value.integer.value[0]) {
2756 case MADNONE:
2757 mad_type = MAD_HW_NONE;
2758 break;
2759 case MADAUDIO:
2760 mad_type = MAD_HW_AUDIO;
2761 break;
2762 case MADBEACON:
2763 mad_type = MAD_HW_BEACON;
2764 break;
2765 case MADULTRASOUND:
2766 mad_type = MAD_HW_ULTRASOUND;
2767 break;
2768 case MADSWAUDIO:
2769 mad_type = MAD_SW_AUDIO;
2770 break;
2771 default:
2772 WARN(1, "Unknown\n");
2773 return -EINVAL;
2774 }
2775
2776 /*Check for Tertiary/Quaternary/INT3 TX port*/
2777 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2778 strlen(lsm_port_text[7])))
2779 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2780
2781 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2782 strlen(lsm_port_text[8])))
2783 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2784
2785 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2786 strlen(lsm_port_text[10])))
2787 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2788
2789 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2790 mad_type);
2791 return afe_port_set_mad_type(port_id, mad_type);
2792}
2793
2794static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2795
2796static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2797 adm_override_chs_text);
2798
2799static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2800{
2801 int backend_id;
2802
2803 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2804 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2805 } else {
2806 pr_err("%s: unsupported backend id: %s",
2807 __func__, kcontrol->id.name);
2808 return -EINVAL;
2809 }
2810
2811 return backend_id;
2812}
2813static int msm_routing_adm_channel_config_get(
2814 struct snd_kcontrol *kcontrol,
2815 struct snd_ctl_elem_value *ucontrol)
2816{
2817 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2818
2819 if (backend_id >= 0) {
2820 mutex_lock(&routing_lock);
2821 ucontrol->value.integer.value[0] =
2822 msm_bedais[backend_id].adm_override_ch;
2823 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2824 ucontrol->value.integer.value[0], backend_id);
2825 mutex_unlock(&routing_lock);
2826 }
2827
2828 return 0;
2829}
2830
2831static int msm_routing_adm_channel_config_put(
2832 struct snd_kcontrol *kcontrol,
2833 struct snd_ctl_elem_value *ucontrol)
2834{
2835 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2836
2837 if (backend_id >= 0) {
2838 mutex_lock(&routing_lock);
2839 msm_bedais[backend_id].adm_override_ch =
2840 ucontrol->value.integer.value[0];
2841 pr_debug("%s:updating BE :%d adm channels: %d\n",
2842 __func__, backend_id,
2843 msm_bedais[backend_id].adm_override_ch);
2844 mutex_unlock(&routing_lock);
2845 }
2846
2847 return 0;
2848}
2849
2850static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2851 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2852 msm_routing_adm_channel_config_get,
2853 msm_routing_adm_channel_config_put),
2854};
2855
2856static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2857 struct snd_ctl_elem_value *ucontrol)
2858{
2859
2860 mutex_lock(&routing_lock);
2861 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2862 mutex_unlock(&routing_lock);
2863 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2864 ucontrol->value.integer.value[0]);
2865 return 0;
2866};
2867
2868static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2869 struct snd_ctl_elem_value *ucontrol)
2870{
2871 struct aanc_data aanc_info;
2872
2873 mutex_lock(&routing_lock);
2874 memset(&aanc_info, 0x00, sizeof(aanc_info));
2875 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2876 ucontrol->value.integer.value[0]);
2877 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2878 if (ucontrol->value.integer.value[0] == 0) {
2879 aanc_info.aanc_active = false;
2880 aanc_info.aanc_tx_port = 0;
2881 aanc_info.aanc_rx_port = 0;
2882 } else {
2883 aanc_info.aanc_active = true;
2884 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2885 aanc_info.aanc_tx_port =
2886 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2887 }
2888 afe_set_aanc_info(&aanc_info);
2889 mutex_unlock(&routing_lock);
2890 return 0;
2891};
2892static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2893 struct snd_ctl_elem_value *ucontrol)
2894{
2895 int idx = 0, shift = 0;
2896 struct soc_mixer_control *mc =
2897 (struct soc_mixer_control *)kcontrol->private_value;
2898
Meng Wang05d5e9a2018-03-28 16:45:03 +08002899 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2900 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302901
2902 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2903 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2904 return -EINVAL;
2905 }
2906
2907 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002908 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302909 ucontrol->value.integer.value[0] = 1;
2910 else
2911 ucontrol->value.integer.value[0] = 0;
2912
Meng Wang05d5e9a2018-03-28 16:45:03 +08002913 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302914 ucontrol->value.integer.value[0]);
2915
2916 return 0;
2917}
2918
2919static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2920 struct snd_ctl_elem_value *ucontrol)
2921{
2922 int idx = 0, shift = 0;
2923 struct soc_mixer_control *mc =
2924 (struct soc_mixer_control *)kcontrol->private_value;
2925
Meng Wang05d5e9a2018-03-28 16:45:03 +08002926 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2927 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302928
2929 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2930 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2931 return -EINVAL;
2932 }
2933
Meng Wang05d5e9a2018-03-28 16:45:03 +08002934 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2935 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302936 ucontrol->value.integer.value[0], idx, shift);
2937
2938 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002939 afe_loopback(1, msm_bedais[mc->shift].port_id,
2940 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302941 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002942 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302943 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002944 afe_loopback(0, msm_bedais[mc->shift].port_id,
2945 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302946 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002947 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302948 }
2949
2950 return 1;
2951}
2952
2953static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2954 struct snd_ctl_elem_value *ucontrol)
2955{
2956 u16 fe_id = 0;
2957
2958 fe_id = ((struct soc_mixer_control *)
2959 kcontrol->private_value)->shift;
2960 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2961 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2962 return -EINVAL;
2963 }
2964
2965 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2966
2967 return 0;
2968}
2969
2970static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2971 struct snd_ctl_elem_value *ucontrol)
2972{
2973 u16 fe_id = 0;
2974
2975 fe_id = ((struct soc_mixer_control *)
2976 kcontrol->private_value)->shift;
2977 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2978 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2979 return -EINVAL;
2980 }
2981
2982 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
2983
2984 return 1;
2985}
2986
2987static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
2988 struct snd_ctl_elem_value *ucontrol)
2989{
2990 u16 fe_id = 0;
2991
2992 fe_id = ((struct soc_multi_mixer_control *)
2993 kcontrol->private_value)->shift;
2994 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2995 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2996 return -EINVAL;
2997 }
2998
2999 ucontrol->value.integer.value[0] =
3000 channel_mixer[fe_id].output_channel;
3001 return 0;
3002}
3003
3004static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3005 struct snd_ctl_elem_value *ucontrol)
3006{
3007 u16 fe_id = 0;
3008
3009 fe_id = ((struct soc_multi_mixer_control *)
3010 kcontrol->private_value)->shift;
3011 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3012 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3013 return -EINVAL;
3014 }
3015
3016 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3017 fe_id,
3018 (unsigned int)(ucontrol->value.integer.value[0]));
3019 channel_mixer[fe_id].output_channel =
3020 (unsigned int)(ucontrol->value.integer.value[0]);
3021
3022 return 1;
3023}
3024
3025static const char *const ch_mixer[] = {"Disable", "Enable"};
3026
3027/* If new backend is added, need update this array */
3028static const char *const be_name[] = {
3029"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3030"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3031"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3032"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3033"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3034"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3035"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3036"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3037"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3038"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3039"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3040"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003041"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303042"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3043"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3044"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3045"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3046"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3047"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3048"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3049"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3050"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3051"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3052"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3053"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3054"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3055"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3056"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3057"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3058"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303059"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3060"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3061"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3062"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003063"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303064"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303065"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303066"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3067"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3068"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303069"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3070"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003071"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303072"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3073"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3074"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3075"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3076"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303077};
3078
3079static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3080 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3081static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3082 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3083static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3084 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3085static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3086 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3087
3088static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3089 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3090static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3091 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3092static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3093 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3094static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3095 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3096static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3097 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3098static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3099 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3100static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3101 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3102static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3103 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3104
3105static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3106 unsigned int channels,
3107 unsigned int items, const char *const names[])
3108{
3109 if (uinfo->value.enumerated.item >= items)
3110 uinfo->value.enumerated.item = items - 1;
3111
3112 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3113 sizeof(uinfo->value.enumerated.name),
3114 "ALSA: too long item name '%s'\n",
3115 names[uinfo->value.enumerated.item]);
3116 strlcpy(uinfo->value.enumerated.name,
3117 names[uinfo->value.enumerated.item],
3118 sizeof(uinfo->value.enumerated.name));
3119 return 0;
3120}
3121
3122static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3123 struct snd_ctl_elem_info *uinfo)
3124{
3125 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3126
3127 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3128 uinfo->count = 1;
3129
3130 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3131 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3132
3133 return 0;
3134}
3135static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3136 struct snd_ctl_elem_value *ucontrol)
3137{
3138 u16 fe_id = 0;
3139
3140 fe_id = ((struct soc_enum *)
3141 kcontrol->private_value)->shift_l;
3142 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3143 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3144 return -EINVAL;
3145 }
3146
3147 pr_debug("%s: FE %d %s\n", __func__,
3148 fe_id,
3149 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3150 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3151 return 0;
3152}
3153
3154static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3155 struct snd_ctl_elem_value *ucontrol)
3156{
3157 u16 fe_id = 0;
3158
3159 fe_id = ((struct soc_enum *)
3160 kcontrol->private_value)->shift_l;
3161 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3162 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3163 return -EINVAL;
3164 }
3165
3166 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3167 pr_debug("%s: %s FE %d\n", __func__,
3168 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3169 fe_id);
3170 return 0;
3171}
3172
3173static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3174 struct snd_ctl_elem_info *uinfo)
3175{
3176 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3177
3178 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3179 uinfo->count = 1;
3180
3181 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3182 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3183
3184 return 0;
3185}
3186
3187static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3188 struct snd_ctl_elem_value *ucontrol)
3189{
3190 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3191 u16 fe_id = 0, in_ch = 0;
3192
3193 fe_id = e->shift_l;
3194 in_ch = e->shift_r;
3195 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3196 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3197 return -EINVAL;
3198 }
3199 if (in_ch >= ADM_MAX_CHANNELS) {
3200 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3201 return -EINVAL;
3202 }
3203
3204 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3205 return 1;
3206}
3207
3208static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3209 struct snd_ctl_elem_value *ucontrol)
3210{
3211 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3212 u16 fe_id = 0, in_ch = 0;
3213
3214 fe_id = e->shift_l;
3215 in_ch = e->shift_r;
3216 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3217 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3218 return -EINVAL;
3219 }
3220 if (in_ch >= ADM_MAX_CHANNELS) {
3221 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3222 return -EINVAL;
3223 }
3224
3225 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3226 return 1;
3227}
3228
3229
3230static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3231 struct snd_ctl_elem_info *uinfo)
3232{
3233 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3234 uinfo->count = ADM_MAX_CHANNELS;
3235 uinfo->value.integer.min = 0;
3236 uinfo->value.integer.max = WEIGHT_0_DB;
3237
3238 return 0;
3239}
3240
3241static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3242 struct snd_ctl_elem_value *ucontrol)
3243{
3244 u16 fe_id = 0, out_ch = 0;
3245 int i, weight;
3246
3247 fe_id = ((struct soc_multi_mixer_control *)
3248 kcontrol->private_value)->shift;
3249 out_ch = ((struct soc_multi_mixer_control *)
3250 kcontrol->private_value)->rshift;
3251 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3252 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3253 return -EINVAL;
3254 }
3255 if (out_ch >= ADM_MAX_CHANNELS) {
3256 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3257 return -EINVAL;
3258 }
3259
3260 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3261 __func__, fe_id,
3262 ucontrol->value.integer.value[0],
3263 ucontrol->value.integer.value[1],
3264 ucontrol->value.integer.value[2],
3265 ucontrol->value.integer.value[3],
3266 ucontrol->value.integer.value[4],
3267 ucontrol->value.integer.value[5],
3268 ucontrol->value.integer.value[6],
3269 ucontrol->value.integer.value[7]);
3270
3271 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3272 weight = ucontrol->value.integer.value[i];
3273 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3274 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3275 __func__, fe_id, out_ch, i,
3276 channel_mixer[fe_id].channel_weight[out_ch][i]);
3277 }
3278
3279 return 0;
3280}
3281
3282static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3283 struct snd_ctl_elem_value *ucontrol)
3284{
3285 u16 fe_id = 0, out_ch = 0;
3286 int i;
3287
3288 fe_id = ((struct soc_multi_mixer_control *)
3289 kcontrol->private_value)->shift;
3290 out_ch = ((struct soc_multi_mixer_control *)
3291 kcontrol->private_value)->rshift;
3292 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3293 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3294 return -EINVAL;
3295 }
3296 if (out_ch >= ADM_MAX_CHANNELS) {
3297 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3298 return -EINVAL;
3299 }
3300
3301 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3302 ucontrol->value.integer.value[i] =
3303 channel_mixer[fe_id].channel_weight[out_ch][i];
3304
3305 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3306 __func__, fe_id,
3307 ucontrol->value.integer.value[0],
3308 ucontrol->value.integer.value[1],
3309 ucontrol->value.integer.value[2],
3310 ucontrol->value.integer.value[3],
3311 ucontrol->value.integer.value[4],
3312 ucontrol->value.integer.value[5],
3313 ucontrol->value.integer.value[6],
3314 ucontrol->value.integer.value[7]);
3315
3316 return 0;
3317}
3318
3319static const struct snd_kcontrol_new channel_mixer_controls[] = {
3320 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3321 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3322 msm_pcm_get_channel_rule_index,
3323 msm_pcm_put_channel_rule_index),
3324 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3325 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3326 msm_pcm_get_channel_rule_index,
3327 msm_pcm_put_channel_rule_index),
3328 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3329 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3330 msm_pcm_get_channel_rule_index,
3331 msm_pcm_put_channel_rule_index),
3332 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3333 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3334 msm_pcm_get_channel_rule_index,
3335 msm_pcm_put_channel_rule_index),
3336 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3337 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3338 msm_pcm_get_channel_rule_index,
3339 msm_pcm_put_channel_rule_index),
3340 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3341 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3342 msm_pcm_get_channel_rule_index,
3343 msm_pcm_put_channel_rule_index),
3344
3345 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3346 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3347 msm_pcm_get_out_chs,
3348 msm_pcm_put_out_chs),
3349 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3350 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3351 msm_pcm_get_out_chs,
3352 msm_pcm_put_out_chs),
3353 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3354 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3355 msm_pcm_get_out_chs,
3356 msm_pcm_put_out_chs),
3357 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3358 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3359 msm_pcm_get_out_chs,
3360 msm_pcm_put_out_chs),
3361 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3362 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3363 msm_pcm_get_out_chs,
3364 msm_pcm_put_out_chs),
3365 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3366 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3367 msm_pcm_get_out_chs,
3368 msm_pcm_put_out_chs),
3369 {
3370 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3371 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3372 .name = "MultiMedia1 Channel Mixer",
3373 .info = msm_pcm_channel_mixer_info,
3374 .get = msm_pcm_channel_mixer_get,
3375 .put = msm_pcm_channel_mixer_put,
3376 .private_value = (unsigned long)&(mm1_channel_mux)
3377 },
3378 {
3379 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3380 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3381 .name = "MultiMedia2 Channel Mixer",
3382 .info = msm_pcm_channel_mixer_info,
3383 .get = msm_pcm_channel_mixer_get,
3384 .put = msm_pcm_channel_mixer_put,
3385 .private_value = (unsigned long)&(mm2_channel_mux)
3386 },
3387 {
3388 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3389 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3390 .name = "MultiMedia3 Channel Mixer",
3391 .info = msm_pcm_channel_mixer_info,
3392 .get = msm_pcm_channel_mixer_get,
3393 .put = msm_pcm_channel_mixer_put,
3394 .private_value = (unsigned long)&(mm3_channel_mux)
3395 },
3396 {
3397 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3398 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3399 .name = "MultiMedia4 Channel Mixer",
3400 .info = msm_pcm_channel_mixer_info,
3401 .get = msm_pcm_channel_mixer_get,
3402 .put = msm_pcm_channel_mixer_put,
3403 .private_value = (unsigned long)&(mm4_channel_mux)
3404 },
3405 {
3406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3407 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3408 .name = "MultiMedia1 Output Channel1",
3409 .info = msm_pcm_channel_weight_info,
3410 .get = msm_pcm_channel_weight_get,
3411 .put = msm_pcm_channel_weight_put,
3412 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3413 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3414 },
3415 {
3416 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3417 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3418 .name = "MultiMedia1 Output Channel2",
3419 .info = msm_pcm_channel_weight_info,
3420 .get = msm_pcm_channel_weight_get,
3421 .put = msm_pcm_channel_weight_put,
3422 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3423 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3424 },
3425 {
3426 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3427 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3428 .name = "MultiMedia1 Output Channel3",
3429 .info = msm_pcm_channel_weight_info,
3430 .get = msm_pcm_channel_weight_get,
3431 .put = msm_pcm_channel_weight_put,
3432 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3433 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3434 },
3435 {
3436 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3437 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3438 .name = "MultiMedia1 Output Channel4",
3439 .info = msm_pcm_channel_weight_info,
3440 .get = msm_pcm_channel_weight_get,
3441 .put = msm_pcm_channel_weight_put,
3442 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3443 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3444 },
3445 {
3446 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3447 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3448 .name = "MultiMedia1 Output Channel5",
3449 .info = msm_pcm_channel_weight_info,
3450 .get = msm_pcm_channel_weight_get,
3451 .put = msm_pcm_channel_weight_put,
3452 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3453 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3454 },
3455 {
3456 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3457 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3458 .name = "MultiMedia1 Output Channel6",
3459 .info = msm_pcm_channel_weight_info,
3460 .get = msm_pcm_channel_weight_get,
3461 .put = msm_pcm_channel_weight_put,
3462 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3463 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3464 },
3465 {
3466 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3467 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3468 .name = "MultiMedia1 Output Channel7",
3469 .info = msm_pcm_channel_weight_info,
3470 .get = msm_pcm_channel_weight_get,
3471 .put = msm_pcm_channel_weight_put,
3472 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3473 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3474 },
3475 {
3476 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3477 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3478 .name = "MultiMedia1 Output Channel8",
3479 .info = msm_pcm_channel_weight_info,
3480 .get = msm_pcm_channel_weight_get,
3481 .put = msm_pcm_channel_weight_put,
3482 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3483 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3484 },
3485 {
3486 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3487 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3488 .name = "MultiMedia2 Output Channel1",
3489 .info = msm_pcm_channel_weight_info,
3490 .get = msm_pcm_channel_weight_get,
3491 .put = msm_pcm_channel_weight_put,
3492 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3493 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3494 },
3495 {
3496 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3497 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3498 .name = "MultiMedia2 Output Channel2",
3499 .info = msm_pcm_channel_weight_info,
3500 .get = msm_pcm_channel_weight_get,
3501 .put = msm_pcm_channel_weight_put,
3502 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3503 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3504 },
3505 {
3506 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3507 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3508 .name = "MultiMedia2 Output Channel3",
3509 .info = msm_pcm_channel_weight_info,
3510 .get = msm_pcm_channel_weight_get,
3511 .put = msm_pcm_channel_weight_put,
3512 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3513 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3514 },
3515 {
3516 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3517 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3518 .name = "MultiMedia3 Output Channel1",
3519 .info = msm_pcm_channel_weight_info,
3520 .get = msm_pcm_channel_weight_get,
3521 .put = msm_pcm_channel_weight_put,
3522 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3523 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3524 },
3525 {
3526 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3527 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3528 .name = "MultiMedia3 Output Channel2",
3529 .info = msm_pcm_channel_weight_info,
3530 .get = msm_pcm_channel_weight_get,
3531 .put = msm_pcm_channel_weight_put,
3532 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3533 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3534 },
3535 {
3536 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3537 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3538 .name = "MultiMedia1 Channel1",
3539 .info = msm_pcm_channel_input_be_info,
3540 .get = msm_pcm_channel_input_be_get,
3541 .put = msm_pcm_channel_input_be_put,
3542 .private_value = (unsigned long)&(mm1_ch1_enum)
3543 },
3544 {
3545 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3546 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3547 .name = "MultiMedia1 Channel2",
3548 .info = msm_pcm_channel_input_be_info,
3549 .get = msm_pcm_channel_input_be_get,
3550 .put = msm_pcm_channel_input_be_put,
3551 .private_value = (unsigned long)&(mm1_ch2_enum)
3552 },
3553 {
3554 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3555 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3556 .name = "MultiMedia1 Channel3",
3557 .info = msm_pcm_channel_input_be_info,
3558 .get = msm_pcm_channel_input_be_get,
3559 .put = msm_pcm_channel_input_be_put,
3560 .private_value = (unsigned long)&(mm1_ch3_enum)
3561 },
3562 {
3563 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3564 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3565 .name = "MultiMedia1 Channel4",
3566 .info = msm_pcm_channel_input_be_info,
3567 .get = msm_pcm_channel_input_be_get,
3568 .put = msm_pcm_channel_input_be_put,
3569 .private_value = (unsigned long)&(mm1_ch4_enum)
3570 },
3571 {
3572 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3573 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3574 .name = "MultiMedia1 Channel5",
3575 .info = msm_pcm_channel_input_be_info,
3576 .get = msm_pcm_channel_input_be_get,
3577 .put = msm_pcm_channel_input_be_put,
3578 .private_value = (unsigned long)&(mm1_ch5_enum)
3579 },
3580 {
3581 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3582 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3583 .name = "MultiMedia1 Channel6",
3584 .info = msm_pcm_channel_input_be_info,
3585 .get = msm_pcm_channel_input_be_get,
3586 .put = msm_pcm_channel_input_be_put,
3587 .private_value = (unsigned long)&(mm1_ch6_enum)
3588 },
3589 {
3590 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3591 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3592 .name = "MultiMedia1 Channel7",
3593 .info = msm_pcm_channel_input_be_info,
3594 .get = msm_pcm_channel_input_be_get,
3595 .put = msm_pcm_channel_input_be_put,
3596 .private_value = (unsigned long)&(mm1_ch7_enum)
3597 },
3598 {
3599 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3600 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3601 .name = "MultiMedia1 Channel8",
3602 .info = msm_pcm_channel_input_be_info,
3603 .get = msm_pcm_channel_input_be_get,
3604 .put = msm_pcm_channel_input_be_put,
3605 .private_value = (unsigned long)&(mm1_ch8_enum)
3606 },
3607};
3608static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3609 struct snd_ctl_elem_value *ucontrol)
3610{
3611 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3612 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3613 ucontrol->value.integer.value[0]);
3614 return 0;
3615}
3616
3617static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3618 struct snd_ctl_elem_value *ucontrol)
3619{
3620 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3621 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3622 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3623 return 0;
3624}
3625
3626static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3627 "Four", "Five", "Six", "Seven", "Eight"};
3628
3629static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3630 struct snd_ctl_elem_value *ucontrol)
3631{
3632 switch (msm_ec_ref_bit_format) {
3633 case SNDRV_PCM_FORMAT_S24_LE:
3634 ucontrol->value.integer.value[0] = 2;
3635 break;
3636 case SNDRV_PCM_FORMAT_S16_LE:
3637 ucontrol->value.integer.value[0] = 1;
3638 break;
3639 default:
3640 ucontrol->value.integer.value[0] = 0;
3641 break;
3642 }
3643 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3644 __func__, ucontrol->value.integer.value[0]);
3645 return 0;
3646}
3647
3648static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3649 struct snd_ctl_elem_value *ucontrol)
3650{
3651 u16 bit_width = 0;
3652
3653 switch (ucontrol->value.integer.value[0]) {
3654 case 2:
3655 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3656 break;
3657 case 1:
3658 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3659 break;
3660 default:
3661 msm_ec_ref_bit_format = 0;
3662 break;
3663 }
3664
3665 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3666 bit_width = 16;
3667 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3668 bit_width = 24;
3669
3670 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3671 __func__, msm_ec_ref_bit_format);
3672 adm_ec_ref_rx_bit_width(bit_width);
3673 return 0;
3674}
3675
3676static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3677
3678static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3679 struct snd_ctl_elem_value *ucontrol)
3680{
3681 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3682 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3683 __func__, ucontrol->value.integer.value[0]);
3684 return 0;
3685}
3686
3687static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3688 struct snd_ctl_elem_value *ucontrol)
3689{
3690 switch (ucontrol->value.integer.value[0]) {
3691 case 0:
3692 msm_ec_ref_sampling_rate = 0;
3693 break;
3694 case 1:
3695 msm_ec_ref_sampling_rate = 8000;
3696 break;
3697 case 2:
3698 msm_ec_ref_sampling_rate = 16000;
3699 break;
3700 case 3:
3701 msm_ec_ref_sampling_rate = 32000;
3702 break;
3703 case 4:
3704 msm_ec_ref_sampling_rate = 44100;
3705 break;
3706 case 5:
3707 msm_ec_ref_sampling_rate = 48000;
3708 break;
3709 case 6:
3710 msm_ec_ref_sampling_rate = 96000;
3711 break;
3712 case 7:
3713 msm_ec_ref_sampling_rate = 192000;
3714 break;
3715 case 8:
3716 msm_ec_ref_sampling_rate = 384000;
3717 break;
3718 default:
3719 msm_ec_ref_sampling_rate = 48000;
3720 break;
3721 }
3722 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3723 __func__, msm_ec_ref_sampling_rate);
3724 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3725 return 0;
3726}
3727
3728static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3729 "32000", "44100", "48000", "96000", "192000", "384000"};
3730
3731static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3732 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3733 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3734 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3735};
3736
3737static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3738 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3739 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3740 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3741 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3742 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3743 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3744};
3745
3746static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3747 struct snd_ctl_elem_value *ucontrol)
3748{
3749 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3750 mutex_lock(&routing_lock);
3751 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3752 mutex_unlock(&routing_lock);
3753 return 0;
3754}
3755
3756static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3757 struct snd_ctl_elem_value *ucontrol)
3758{
3759 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303760 struct snd_soc_dapm_widget *widget =
3761 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303762 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3763 struct snd_soc_dapm_update *update = NULL;
3764
3765
3766 mutex_lock(&routing_lock);
3767 switch (ucontrol->value.integer.value[0]) {
3768 case 0:
3769 msm_route_ec_ref_rx = 0;
3770 ec_ref_port_id = AFE_PORT_INVALID;
3771 break;
3772 case 1:
3773 msm_route_ec_ref_rx = 1;
3774 ec_ref_port_id = SLIMBUS_0_RX;
3775 break;
3776 case 2:
3777 msm_route_ec_ref_rx = 2;
3778 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3779 break;
3780 case 3:
3781 msm_route_ec_ref_rx = 3;
3782 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3783 break;
3784 case 4:
3785 msm_route_ec_ref_rx = 4;
3786 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3787 break;
3788 case 5:
3789 msm_route_ec_ref_rx = 5;
3790 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3791 break;
3792 case 6:
3793 msm_route_ec_ref_rx = 6;
3794 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3795 break;
3796 case 7:
3797 msm_route_ec_ref_rx = 7;
3798 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3799 break;
3800 case 9:
3801 msm_route_ec_ref_rx = 9;
3802 ec_ref_port_id = SLIMBUS_5_RX;
3803 break;
3804 case 10:
3805 msm_route_ec_ref_rx = 10;
3806 ec_ref_port_id = SLIMBUS_1_TX;
3807 break;
3808 case 11:
3809 msm_route_ec_ref_rx = 11;
3810 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3811 break;
3812 case 12:
3813 msm_route_ec_ref_rx = 12;
3814 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3815 break;
3816 case 13:
3817 msm_route_ec_ref_rx = 13;
3818 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3819 break;
3820 case 14:
3821 msm_route_ec_ref_rx = 14;
3822 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3823 break;
3824 case 15:
3825 msm_route_ec_ref_rx = 15;
3826 ec_ref_port_id = SLIMBUS_6_RX;
3827 break;
3828 case 16:
3829 msm_route_ec_ref_rx = 16;
3830 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3831 break;
3832 case 17:
3833 msm_route_ec_ref_rx = 17;
3834 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3835 break;
3836 case 18:
3837 msm_route_ec_ref_rx = 18;
3838 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3839 break;
3840 case 19:
3841 msm_route_ec_ref_rx = 19;
3842 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3843 break;
3844 case 20:
3845 msm_route_ec_ref_rx = 20;
3846 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3847 break;
3848 case 21:
3849 msm_route_ec_ref_rx = 21;
3850 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3851 break;
3852 case 22:
3853 msm_route_ec_ref_rx = 22;
3854 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3855 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003856 case 23:
3857 msm_route_ec_ref_rx = 23;
3858 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3859 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303860 case 24:
3861 msm_route_ec_ref_rx = 24;
3862 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3863 break;
3864 case 25:
3865 msm_route_ec_ref_rx = 25;
3866 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3867 break;
3868 case 26:
3869 msm_route_ec_ref_rx = 26;
3870 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3871 break;
3872 case 27:
3873 msm_route_ec_ref_rx = 27;
3874 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3875 break;
3876 case 28:
3877 msm_route_ec_ref_rx = 28;
3878 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3879 break;
Zhou Songb167db12018-07-02 17:14:00 +08003880 case 29:
3881 msm_route_ec_ref_rx = 29;
3882 ec_ref_port_id = SLIMBUS_7_RX;
3883 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303884 case 30:
3885 msm_route_ec_ref_rx = 30;
3886 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3887 break;
3888 case 31:
3889 msm_route_ec_ref_rx = 31;
3890 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3891 break;
3892 case 32:
3893 msm_route_ec_ref_rx = 32;
3894 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3895 break;
3896 case 33:
3897 msm_route_ec_ref_rx = 33;
3898 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3899 break;
3900 case 34:
3901 msm_route_ec_ref_rx = 34;
3902 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3903 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303904 default:
3905 msm_route_ec_ref_rx = 0; /* NONE */
3906 pr_err("%s EC ref rx %ld not valid\n",
3907 __func__, ucontrol->value.integer.value[0]);
3908 ec_ref_port_id = AFE_PORT_INVALID;
3909 break;
3910 }
3911 adm_ec_ref_rx_id(ec_ref_port_id);
3912 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3913 __func__, msm_route_ec_ref_rx);
3914 mutex_unlock(&routing_lock);
3915 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3916 msm_route_ec_ref_rx, e, update);
3917 return 0;
3918}
3919
3920static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3921 "PRI_MI2S_TX", "SEC_MI2S_TX",
3922 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3923 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3924 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3925 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303926 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3927 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003928 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303929 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
3930 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303931};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303932
3933static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3934 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3935};
3936
3937static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3938 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3939 msm_route_ec_ref_rx_enum[0],
3940 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3941
3942static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3943 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3944 msm_route_ec_ref_rx_enum[0],
3945 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3946
3947static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3948 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3949 msm_route_ec_ref_rx_enum[0],
3950 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3951
3952static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3953 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3954 msm_route_ec_ref_rx_enum[0],
3955 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3956
3957static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3958 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3959 msm_route_ec_ref_rx_enum[0],
3960 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3961
3962static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3963 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3964 msm_route_ec_ref_rx_enum[0],
3965 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3966
3967static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3968 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3969 msm_route_ec_ref_rx_enum[0],
3970 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3971
3972static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3973 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3974 msm_route_ec_ref_rx_enum[0],
3975 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3976
Asish Bhattacharya34504582017-08-08 12:55:01 +05303977static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
3978 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
3979 msm_route_ec_ref_rx_enum[0],
3980 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3981
Laxminath Kasam38070be2017-08-17 18:21:59 +05303982static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
3983 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
3984 msm_route_ec_ref_rx_enum[0],
3985 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3986
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303987static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
3988 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
3989 msm_route_ec_ref_rx_enum[0],
3990 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3991
3992static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
3993 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
3994 msm_route_ec_ref_rx_enum[0],
3995 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3996
3997static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
3998 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
3999 msm_route_ec_ref_rx_enum[0],
4000 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4001
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304002static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4003 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4004 msm_route_ec_ref_rx_enum[0],
4005 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4006
4007static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4008 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4009 msm_route_ec_ref_rx_enum[0],
4010 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4011
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304012static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4013 struct snd_ctl_elem_value *ucontrol)
4014{
4015 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4016
4017 mutex_lock(&routing_lock);
4018 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4019 mutex_unlock(&routing_lock);
4020 return 0;
4021}
4022
4023static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4024 struct snd_ctl_elem_value *ucontrol)
4025{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304026 struct snd_soc_dapm_widget *widget =
4027 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304028 int mux = ucontrol->value.enumerated.item[0];
4029 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4030 int ret = 1;
4031 bool state = true;
4032 uint16_t ext_ec_ref_port_id;
4033 struct snd_soc_dapm_update *update = NULL;
4034
4035 if (mux >= e->items) {
4036 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4037 return -EINVAL;
4038 }
4039
4040 mutex_lock(&routing_lock);
4041 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4042
4043 switch (msm_route_ext_ec_ref) {
4044 case EXT_EC_REF_PRI_MI2S_TX:
4045 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4046 break;
4047 case EXT_EC_REF_SEC_MI2S_TX:
4048 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4049 break;
4050 case EXT_EC_REF_TERT_MI2S_TX:
4051 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4052 break;
4053 case EXT_EC_REF_QUAT_MI2S_TX:
4054 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4055 break;
4056 case EXT_EC_REF_QUIN_MI2S_TX:
4057 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4058 break;
4059 case EXT_EC_REF_SLIM_1_TX:
4060 ext_ec_ref_port_id = SLIMBUS_1_TX;
4061 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004062 case EXT_EC_REF_SEC_TDM_TX:
4063 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4064 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304065 case EXT_EC_REF_NONE:
4066 default:
4067 ext_ec_ref_port_id = AFE_PORT_INVALID;
4068 state = false;
4069 break;
4070 }
4071
4072 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4073 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4074
4075 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4076 mutex_unlock(&routing_lock);
4077 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4078 update);
4079 } else {
4080 ret = -EINVAL;
4081 mutex_unlock(&routing_lock);
4082 }
4083 return ret;
4084}
4085
4086static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4087 "SEC_MI2S_TX", "TERT_MI2S_TX",
4088 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004089 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304090
4091static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4092 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4093};
4094
4095static const struct snd_kcontrol_new voc_ext_ec_mux =
4096 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4097 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4098
4099
4100static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004101 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4102 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004105 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4106 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304107 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004109 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4110 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304111 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004113 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4114 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304115 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004117 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4118 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304119 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004121 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4122 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304123 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004125 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4126 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304127 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004129 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4130 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304131 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004133 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4134 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304135 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004137 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4138 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304139 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004141 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4142 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304143 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004145 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4146 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304147 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004149 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4150 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304151 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004153 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4154 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304155 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004157 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4158 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304159 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004161 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4162 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304163 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004165 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4166 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304167 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004169 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4170 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304171 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004173 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4174 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304175 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004177 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4178 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304179 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004181 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4182 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304183 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4184 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304185};
4186
4187static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004188 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4189 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304190 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004192 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4193 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304194 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004196 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4197 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304198 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004200 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4201 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304202 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004204 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4205 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304206 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004208 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4209 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304210 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004212 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4213 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304214 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004216 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4217 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304218 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004220 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4221 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304222 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004224 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4225 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304226 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004228 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4229 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304230 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004232 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4233 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304234 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004236 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4237 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304238 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004240 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4241 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304242 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004244 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4245 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304246 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004248 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4249 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304250 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004252 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4253 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304254 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004256 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4257 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304258 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004260 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4261 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304262 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004264 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4265 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304266 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004268 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4269 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304270 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4271 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304272};
4273
Ralf Herzc8701f72018-06-20 11:37:35 +02004274static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004275 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004276 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004279 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004280 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304281 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004283 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004284 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004287 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004288 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304289 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004291 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004292 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004295 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004296 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304297 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004299 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004300 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304301 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004303 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004304 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004307 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004308 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004311 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004312 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304313 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004315 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004316 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304317 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004319 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004320 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304321 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004323 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004324 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304325 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004327 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004328 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304329 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004331 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004332 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304333 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004335 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004336 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304337 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004339 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004340 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304341 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004343 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004344 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304345 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004347 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004348 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304349 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004351 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004352 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304353 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004355 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004356 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4357 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4358 msm_routing_put_audio_mixer),
4359};
4360
4361static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4362 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4363 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4364 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4365 msm_routing_put_audio_mixer),
4366 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4367 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4368 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4369 msm_routing_put_audio_mixer),
4370 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4371 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4372 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4373 msm_routing_put_audio_mixer),
4374 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4375 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4376 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4377 msm_routing_put_audio_mixer),
4378 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4379 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4380 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4381 msm_routing_put_audio_mixer),
4382 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4383 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4384 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4385 msm_routing_put_audio_mixer),
4386 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4387 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4388 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4389 msm_routing_put_audio_mixer),
4390 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4391 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4392 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4393 msm_routing_put_audio_mixer),
4394 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4395 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4396 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4397 msm_routing_put_audio_mixer),
4398 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4399 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4400 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4401 msm_routing_put_audio_mixer),
4402 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4403 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4404 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4405 msm_routing_put_audio_mixer),
4406 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4407 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4408 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4409 msm_routing_put_audio_mixer),
4410 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4411 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4412 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4413 msm_routing_put_audio_mixer),
4414 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4415 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4416 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4417 msm_routing_put_audio_mixer),
4418 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4419 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4420 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4421 msm_routing_put_audio_mixer),
4422 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4423 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4424 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4425 msm_routing_put_audio_mixer),
4426 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4427 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4428 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4429 msm_routing_put_audio_mixer),
4430 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4431 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4432 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4433 msm_routing_put_audio_mixer),
4434 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4435 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4436 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4437 msm_routing_put_audio_mixer),
4438 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4439 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4440 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4441 msm_routing_put_audio_mixer),
4442 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4443 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304444 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4445 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304446};
4447
4448static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004449 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4450 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304451 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004453 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4454 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304455 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004457 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4458 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304459 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004461 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4462 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304463 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004465 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4466 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304467 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004469 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4470 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304471 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004473 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4474 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304475 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004477 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4478 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304479 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004481 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4482 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304483 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004485 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4486 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304487 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004489 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4490 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304491 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004493 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4494 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304495 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004497 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4498 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304499 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004501 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4502 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304503 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004505 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4506 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304507 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004509 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4510 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304511 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4512 msm_routing_put_audio_mixer),
4513};
4514
4515static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004516 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4517 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304518 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004520 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4521 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304522 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004524 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4525 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304526 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004528 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4529 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304530 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004532 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4533 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304534 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004536 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4537 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304538 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004540 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4541 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304542 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004544 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4545 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304546 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004548 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4549 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304550 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004552 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4553 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304554 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004556 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4557 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304558 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004560 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4561 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304562 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004564 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4565 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304566 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004568 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4569 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304570 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004572 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4573 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304574 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004576 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4577 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304578 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004580 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4581 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304582 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004584 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4585 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304586 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004588 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4589 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304590 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004592 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4593 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304594 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004596 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4597 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304598 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4599 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304600};
4601
4602static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004603 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4604 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304605 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004607 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4608 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304609 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004611 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4612 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004615 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4616 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304617 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004619 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4620 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304621 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004623 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4624 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304625 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004627 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4628 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304629 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004631 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4632 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004635 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4636 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304637 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004639 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4640 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304641 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004643 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4644 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304645 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004647 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4648 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304649 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004651 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4652 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304653 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004655 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4656 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304657 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004659 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4660 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304661 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004663 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4664 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304665 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004667 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4668 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304669 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004671 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4672 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304673 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004675 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4676 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304677 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004679 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4680 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304681 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004683 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4684 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304685 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4686 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304687};
4688
4689static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004690 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4691 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304692 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004694 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4695 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304696 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004698 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4699 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304700 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004702 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4703 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304704 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004706 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4707 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304708 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004710 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4711 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304712 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004714 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4715 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304716 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004718 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4719 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304720 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004722 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4723 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304724 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004726 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4727 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304728 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004730 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4731 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304732 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004734 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4735 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304736 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004738 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4739 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304740 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004742 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4743 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304744 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004746 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4747 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304748 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004750 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4751 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304752 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004754 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4755 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304756 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004758 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4759 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304760 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004762 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4763 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304764 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004766 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4767 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304768 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004770 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4771 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304772 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4773 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304774};
4775
4776static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004777 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4778 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304779 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004781 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4782 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304783 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004785 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4786 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304787 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004789 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4790 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304791 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004793 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4794 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304795 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004797 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4798 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304799 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004801 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4802 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304803 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004805 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4806 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304807 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004809 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4810 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304811 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004813 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4814 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304815 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004817 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4818 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304819 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004821 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4822 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304823 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004825 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4826 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304827 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004829 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4830 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304831 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004833 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4834 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304835 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004837 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304839 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004841 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304843 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004845 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004849 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004853 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4854 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304855 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004857 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4858 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304859 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4860 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304861};
4862
4863static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004864 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4865 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304866 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004868 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4869 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304870 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004872 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4873 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304874 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004876 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4877 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304878 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004880 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4881 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304882 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004884 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4885 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004888 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4889 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304890 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004892 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4893 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304894 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004896 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4897 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304898 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004900 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4901 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304902 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004904 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4905 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304906 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004908 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4909 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304910 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004912 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4913 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304914 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004916 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4917 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304918 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004920 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4921 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304922 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004924 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4925 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304926 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004928 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4929 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004932 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4933 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304934 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004936 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4937 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004940 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4941 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004944 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4945 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304946 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4947 msm_routing_put_audio_mixer),
4948
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304949};
4950
4951static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004952 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4953 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004956 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4957 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004960 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4961 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004964 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4965 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304966 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004968 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4969 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004972 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4973 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004976 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4977 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004980 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4981 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004984 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4985 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004988 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4989 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004992 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4993 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004996 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4997 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005000 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305002 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005004 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5005 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305006 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5009 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305010 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005012 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5013 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305014 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005016 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5017 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305018 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005020 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5021 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305022 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005024 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305028};
5029
5030static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005031 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5032 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305033 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5034 msm_routing_put_audio_mixer),
5035};
5036
5037static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005038 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5039 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305040 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005042 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5043 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305044 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005046 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5047 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305048 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005050 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5051 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305052 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005054 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5055 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305056 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005058 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5059 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305060 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005062 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5063 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305064 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005066 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5067 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305068 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005070 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5071 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305072 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005074 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5075 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305076 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005078 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5079 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305080 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005082 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5083 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305084 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005086 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5087 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305088 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005090 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5091 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305092 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005094 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5095 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305096 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005098 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5099 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305100 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005102 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5103 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305104 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005106 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5107 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305108 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005110 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5111 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005114 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5115 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305116 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005118 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5119 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305120 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5121 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305122};
5123
5124static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005125 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5126 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005129 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5130 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305131 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005133 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5134 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305135 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005137 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5138 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305139 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005141 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5142 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305143 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005145 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5146 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305147 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005149 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5150 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305151 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005153 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5154 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305155 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005157 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5158 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305159 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005161 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5162 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305163 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005165 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5166 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305167 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005169 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5170 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305171 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005173 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5174 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305175 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005177 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5178 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305179 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005181 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5182 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305183 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005185 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5186 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305187 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005189 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5190 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305191 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005193 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5194 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305195 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005197 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5198 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305199 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005201 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5202 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305203 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005205 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5206 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305207 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5208 msm_routing_put_audio_mixer),
5209
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305210};
5211
5212static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005213 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5214 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005217 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5218 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305219 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005221 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5222 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005225 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5226 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305227 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005229 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5230 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005233 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5234 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305235 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005237 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5238 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305239 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005241 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5242 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305243 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005245 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005249 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005253 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305255 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005257 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005261 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005265 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5266 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305267 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005269 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5270 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305271 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005273 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5274 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305275 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5276 msm_routing_put_audio_mixer),
5277};
5278
5279static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005280 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5281 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305282 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005284 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5285 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305286 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005288 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5289 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305290 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005292 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5293 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305294 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005296 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5297 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305298 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005300 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5301 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305302 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005304 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5305 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305306 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005308 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5309 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305310 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005312 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5313 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305314 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005316 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5317 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305318 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005320 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5321 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305322 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005324 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5325 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305326 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005328 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5329 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305330 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005332 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5333 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305334 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005336 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5337 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305338 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005340 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5341 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305342 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5343 msm_routing_put_audio_mixer),
5344};
5345
5346static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005347 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5348 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305349 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005351 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5352 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305353 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005355 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5356 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305357 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005359 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5360 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305361 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005363 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5364 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305365 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005367 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5368 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305369 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005371 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5372 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305373 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005375 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5376 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305377 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005379 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5380 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305381 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005383 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5384 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305385 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005387 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5388 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305389 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005391 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5392 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305393 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005395 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5396 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305397 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005399 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5400 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305401 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005403 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5404 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305405 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005407 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5408 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305409 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005411 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5412 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305413 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005415 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5416 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305417 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005419 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5420 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305421 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005423 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5424 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305425 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005427 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5428 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305429 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5430 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305431};
5432
5433static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005434 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5435 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305436 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005438 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5439 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305440 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005442 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5443 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305444 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005446 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5447 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305448 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005450 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5451 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305452 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005454 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5455 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005458 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5459 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005462 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5463 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305464 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005466 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5467 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305468 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005470 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5471 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305472 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005474 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5475 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005478 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5479 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305480 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005482 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5483 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305484 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005486 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5487 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305488 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005490 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5491 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305492 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005494 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5495 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305496 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5497 msm_routing_put_audio_mixer),
5498};
5499
Karthikeyan Mani57550082018-05-03 18:43:58 -07005500static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5501 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5502 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5503 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5504 msm_routing_put_audio_mixer),
5505 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5506 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5507 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5508 msm_routing_put_audio_mixer),
5509 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5510 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5511 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5512 msm_routing_put_audio_mixer),
5513 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5514 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5515 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5516 msm_routing_put_audio_mixer),
5517 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5518 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5519 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5520 msm_routing_put_audio_mixer),
5521 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5522 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5523 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5524 msm_routing_put_audio_mixer),
5525 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5526 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5527 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5528 msm_routing_put_audio_mixer),
5529 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5530 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5531 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5532 msm_routing_put_audio_mixer),
5533 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5534 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5535 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5536 msm_routing_put_audio_mixer),
5537 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5538 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5539 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5540 msm_routing_put_audio_mixer),
5541 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5542 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5543 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5544 msm_routing_put_audio_mixer),
5545 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5546 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5547 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5548 msm_routing_put_audio_mixer),
5549 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5550 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5551 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5552 msm_routing_put_audio_mixer),
5553 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5554 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5555 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5556 msm_routing_put_audio_mixer),
5557 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5558 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5559 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5560 msm_routing_put_audio_mixer),
5561 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5562 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5563 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5564 msm_routing_put_audio_mixer),
5565};
5566
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305567 /* incall music delivery mixer */
5568static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005569 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5570 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305571 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005573 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5574 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305575 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005577 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5578 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305579 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005581 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5582 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305583 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5584 msm_routing_put_audio_mixer),
5585};
5586
5587static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005588 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5589 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305590 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005592 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5593 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305594 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005596 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5597 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305598 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005600 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5601 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305602 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5603 msm_routing_put_audio_mixer),
5604};
5605
5606static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005607 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305609 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005611 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305613 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005615 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305617 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005619 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305621 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
5623};
5624
5625static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005626 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5627 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305628 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005630 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5631 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305632 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005634 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5635 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305636 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005638 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5639 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305640 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005642 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5643 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305644 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005646 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5647 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305648 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005650 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5651 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305652 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005654 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5655 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305656 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005658 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5659 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305660 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005662 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5663 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305664 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005666 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5667 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005670 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005674 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005678 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005682 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005686 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
5690};
5691
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305692static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5693 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5694 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5695 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5696 msm_routing_put_audio_mixer),
5697 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5698 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5699 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5700 msm_routing_put_audio_mixer),
5701 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5702 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5703 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5704 msm_routing_put_audio_mixer),
5705 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5706 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5707 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5708 msm_routing_put_audio_mixer),
5709 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5710 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5711 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5712 msm_routing_put_audio_mixer),
5713 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5714 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5715 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5716 msm_routing_put_audio_mixer),
5717 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5718 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5719 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5720 msm_routing_put_audio_mixer),
5721 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5722 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5723 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5724 msm_routing_put_audio_mixer),
5725 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5726 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5727 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5728 msm_routing_put_audio_mixer),
5729 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5731 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
5733 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5735 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
5737 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5739 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
5741 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5743 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
5745 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5747 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
5749 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5751 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
5753 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5755 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
5757};
5758
5759static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5760 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5761 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5763 msm_routing_put_audio_mixer),
5764 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5765 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5767 msm_routing_put_audio_mixer),
5768 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5769 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5771 msm_routing_put_audio_mixer),
5772 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5773 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5775 msm_routing_put_audio_mixer),
5776 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5777 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5779 msm_routing_put_audio_mixer),
5780 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5781 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5783 msm_routing_put_audio_mixer),
5784 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5785 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5786 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5787 msm_routing_put_audio_mixer),
5788 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5789 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5790 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5791 msm_routing_put_audio_mixer),
5792 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5793 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5794 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5795 msm_routing_put_audio_mixer),
5796 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5797 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5798 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5799 msm_routing_put_audio_mixer),
5800 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5801 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5802 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5803 msm_routing_put_audio_mixer),
5804 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5806 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
5808 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5810 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
5812 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5814 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
5816 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5818 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
5820 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
5824};
5825
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305826static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5827 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5829 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
5831 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5833 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
5835 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
5839 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5841 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
5843 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5845 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
5847 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
5851 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5853 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
5855 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5857 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
5859 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5860 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5861 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5862 msm_routing_put_audio_mixer),
5863 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5864 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5865 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5866 msm_routing_put_audio_mixer),
5867 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5868 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5869 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5870 msm_routing_put_audio_mixer),
5871 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5872 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5873 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5874 msm_routing_put_audio_mixer),
5875 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5876 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5877 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5878 msm_routing_put_audio_mixer),
5879 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5881 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
5883 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5885 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
5887 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
5891};
5892
5893static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
5894 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5895 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5896 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
5898 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5899 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5900 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5901 msm_routing_put_audio_mixer),
5902 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5903 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5904 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5905 msm_routing_put_audio_mixer),
5906 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5907 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5908 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
5910 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5911 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5912 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
5914 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5915 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5916 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
5918 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5919 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5920 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
5922 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5924 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
5926 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5927 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5928 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
5930 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5931 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5932 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5933 msm_routing_put_audio_mixer),
5934 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5935 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5936 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
5938 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5939 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5940 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5941 msm_routing_put_audio_mixer),
5942 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5943 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5944 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
5946 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5947 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5948 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
5950 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5952 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
5954 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5955 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5956 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
5958};
5959
5960static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
5961 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5963 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
5965 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5967 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
5969 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5970 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5971 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
5973 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5974 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5975 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
5977 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5978 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5979 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5980 msm_routing_put_audio_mixer),
5981 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5982 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5983 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5984 msm_routing_put_audio_mixer),
5985 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5986 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5987 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5988 msm_routing_put_audio_mixer),
5989 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5990 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5991 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5992 msm_routing_put_audio_mixer),
5993 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5994 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5995 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5996 msm_routing_put_audio_mixer),
5997 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5998 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5999 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6000 msm_routing_put_audio_mixer),
6001 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6002 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6003 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6004 msm_routing_put_audio_mixer),
6005 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6006 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6007 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
6009 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6011 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
6013 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6015 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
6017 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6019 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
6021 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6023 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
6025};
6026
6027static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6028 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6030 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
6032 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6034 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
6036 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6038 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
6040 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6042 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
6044 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6046 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
6048 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6050 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
6052 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6054 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
6056 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6058 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
6060 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6062 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
6064 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6066 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
6068 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6070 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
6072 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6074 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
6076 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6078 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
6080 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6082 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
6084 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6086 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
6088 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6090 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
6092};
6093
6094static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6095 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6097 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
6099 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6101 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
6103 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6105 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
6107 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6109 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
6111 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6113 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
6115 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6117 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
6119 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6121 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
6123 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6125 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
6127 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6129 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
6131 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6133 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
6135 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6137 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
6139 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6141 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
6143 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6145 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
6147 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6149 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
6151 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6153 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
6155 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6157 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
6159};
6160
6161static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6162 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6164 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
6166 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6168 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
6170 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6172 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
6174 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6176 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
6178 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
6182 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6184 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
6186 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6188 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
6190 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6192 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
6194 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6196 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
6198 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6200 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
6202 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6204 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
6206 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6208 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
6210 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6211 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6212 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6213 msm_routing_put_audio_mixer),
6214 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6216 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
6218 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6220 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
6222 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
6226};
6227
6228static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6229 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6231 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6232 msm_routing_put_audio_mixer),
6233 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6235 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6236 msm_routing_put_audio_mixer),
6237 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6239 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6240 msm_routing_put_audio_mixer),
6241 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6243 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
6245 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6247 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
6249 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6251 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
6253 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6255 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
6257 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6259 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
6261 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6263 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
6265 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6267 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
6269 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6271 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
6273 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6275 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
6277 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6279 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
6281 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6283 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
6285 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6287 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
6289 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6291 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
6293};
6294
6295static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6296 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6298 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6299 msm_routing_put_audio_mixer),
6300 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6303 msm_routing_put_audio_mixer),
6304 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6306 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6307 msm_routing_put_audio_mixer),
6308 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6310 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6311 msm_routing_put_audio_mixer),
6312 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6314 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6315 msm_routing_put_audio_mixer),
6316 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6318 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6319 msm_routing_put_audio_mixer),
6320 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6322 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6323 msm_routing_put_audio_mixer),
6324 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6326 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6327 msm_routing_put_audio_mixer),
6328 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6330 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
6332 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6333 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6334 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6335 msm_routing_put_audio_mixer),
6336 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6337 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6338 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6339 msm_routing_put_audio_mixer),
6340 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6342 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
6344 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6346 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
6348 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6350 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
6352 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6354 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
6356 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6358 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
6360};
6361
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306362static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006363 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6364 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306365 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006367 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6368 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306369 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006371 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6372 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306373 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006375 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306377 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006379 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306381 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006383 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306385 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006387 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306389 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006391 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306393 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006395 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306397 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006399 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306401 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006403 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306405 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006407 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306409 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006411 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306413 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006415 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306417 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006419 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306421 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006423 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306425 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
6427};
6428
6429static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006430 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306432 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006434 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306436 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006438 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306440 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006442 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6443 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306444 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006446 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306448 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006450 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306452 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006454 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306456 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006458 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306460 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006462 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306464 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006466 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306468 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006470 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306472 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006474 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306476 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006478 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306480 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006482 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306484 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006486 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306488 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006490 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306492 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
6494};
6495
6496static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006497 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6498 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306499 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006501 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306503 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006505 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306507 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006509 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306511 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006513 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006517 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306519 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006521 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306523 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006533 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006537 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006541 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006545 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006549 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006553 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006557 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006561 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306563 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006565 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006569 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306571 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006573 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306575 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006577 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306579 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306581};
6582
6583static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006584 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6585 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306586 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006588 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6589 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306590 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006592 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6593 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306594 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006596 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306598 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006600 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306602 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006604 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306606 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006608 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306610 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006612 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306614 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006616 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306618 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006620 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306622 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006624 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306626 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006628 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306630 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006632 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306634 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006636 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306638 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006640 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306642 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006644 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306646 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
6648};
6649
6650static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006651 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6652 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306653 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006655 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6656 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306657 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006659 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006663 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306665 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006667 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306669 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006671 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306673 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006675 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306677 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006679 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306681 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006683 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306685 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006687 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306689 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006691 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306693 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006695 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306697 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006699 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306701 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006703 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306705 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006707 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006711 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006715 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006719 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306721 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006723 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006727 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306729 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006731 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306733 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306735};
6736
6737static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006738 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306740 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006742 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006746 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006750 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006754 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006758 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006762 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006766 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006770 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006798 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006802 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006806 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306808 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006814 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306816 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006818 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306820 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306822};
6823
6824static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006885 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006893 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306895 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006897 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306899 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07006901 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_AUXPCM_RX,
6903 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006905 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6906 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306907 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006909 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6910 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306911 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6912 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306913};
6914
6915static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006932 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006964 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306966 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006968 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306970 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006972 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306974 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006976 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306978 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006980 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306982 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006984 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306986 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006988 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6989 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306990 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6991 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07006992 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
6993 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
6994 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
6995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006996 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6997 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306998 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007000 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7001 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307002 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7003 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307004};
7005
7006static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007007 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307009 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007011 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307013 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007027 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007039 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307041 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007043 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7044 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307045 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007047 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307049 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007051 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307053 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007055 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7056 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307057 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007059 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7060 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307061 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007063 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7064 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307065 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007067 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7068 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307069 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7070 msm_routing_put_audio_mixer),
7071};
7072
7073static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007074 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307076 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007078 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7079 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307080 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007082 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307084 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007086 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7087 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307088 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007090 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7091 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307092 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007094 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7095 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307096 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007098 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7099 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307100 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007102 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7103 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307104 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007106 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7107 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307108 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007110 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7111 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307112 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007114 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7115 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307116 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007118 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7119 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307120 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007122 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7123 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307124 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007126 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7127 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307128 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007130 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7131 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307132 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007134 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7135 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7137 msm_routing_put_audio_mixer),
7138};
7139
Rohit Kumara5077932017-09-10 22:05:05 +05307140static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007141 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7142 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007145 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7146 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307147 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007149 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307151 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007153 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307155 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007157 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007161 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307163 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007165 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7166 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307167 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007173 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7174 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307175 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007177 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7178 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307179 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007181 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7182 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307183 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007185 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7186 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307187 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007189 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7190 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307191 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007193 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7194 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307195 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007197 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7198 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307199 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007201 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7202 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307203 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7204 msm_routing_put_audio_mixer),
7205};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007211 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007215 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007219 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007223 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007227 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007231 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007235 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307237 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007239 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007243 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007247 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007251 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307253 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007255 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307257 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007263 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007267 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307269 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007271 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7273 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307275};
7276
7277static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007278 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007282 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007286 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007290 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007294 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007298 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007302 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307304 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007306 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307308 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007310 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007314 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007318 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007322 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007326 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007330 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007334 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307336 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007338 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307340 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007342 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7344 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307346};
7347
7348static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007349 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007353 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007357 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007413 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7415 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307417};
7418
7419static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007420 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307422 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007424 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307426 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007428 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007432 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307434 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007436 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307438 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007440 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307442 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007484 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7486 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307488};
7489
7490static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007491 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007495 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307497 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007499 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307501 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007503 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307505 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007507 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007515 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007519 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007523 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007527 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307529 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007531 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307533 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007535 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007539 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307541 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007543 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307545 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
7555};
7556
7557static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007558 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307560 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007562 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307564 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007566 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307568 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007570 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307572 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007574 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307576 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007578 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007582 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007586 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007590 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307592 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007594 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307596 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007598 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007602 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007622 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7624 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307626};
7627
7628static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007629 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007633 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007637 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007641 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307643 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007645 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307647 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007649 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007653 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007657 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007661 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007665 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007693 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7695 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307697};
7698
7699static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007708 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007712 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007724 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007728 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007732 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007736 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007740 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007744 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007748 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007752 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307754 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007756 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307758 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007760 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007764 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_SEC_TDM_RX_2,
7766 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307768};
7769
7770static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007771 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007775 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007779 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007783 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307785 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007787 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007791 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007795 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007799 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007803 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007807 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007811 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007815 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007819 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307821 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007823 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307825 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007827 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007831 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007835 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_SEC_TDM_RX_3,
7837 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307839};
7840
7841static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007842 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007846 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007850 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007854 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307856 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007858 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007862 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007866 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007870 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307872 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007874 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007878 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007882 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007886 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007890 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307892 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007894 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307896 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007898 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307900 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007902 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307904 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
7906};
7907
7908static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007909 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007913 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007917 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007921 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007925 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307927 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007929 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007933 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007937 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007941 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307943 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007945 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007949 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007953 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007957 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007961 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307963 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007965 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307967 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007969 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307971 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007973 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_TERT_TDM_RX_0,
7975 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307977};
7978
7979static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007980 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007984 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007988 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007992 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007996 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008000 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008004 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008008 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008012 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008016 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008020 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008024 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008028 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008032 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308034 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008036 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308038 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008040 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
8044};
8045
8046static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008047 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_TERT_TDM_RX_1,
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 Wang05d5e9a2018-03-28 16:45:03 +08008051 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008055 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008059 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008063 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008067 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008071 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008075 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008079 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008083 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008087 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008091 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008095 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008099 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008103 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008107 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008111 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8113 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308115};
8116
8117static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008118 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308120 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008122 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308124 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008126 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308128 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008130 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308132 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008134 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308136 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008138 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308140 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008142 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308144 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008146 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308148 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008150 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308152 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008154 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008158 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308160 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008162 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308164 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008166 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308168 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008170 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308172 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008174 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308176 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008178 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008182 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8184 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308186};
8187
8188static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008189 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008193 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308195 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008197 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308199 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008201 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308203 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008205 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308207 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008209 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308211 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008213 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308215 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008217 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308219 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008221 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308223 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008225 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308227 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008229 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308231 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008233 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308235 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008237 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308239 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008241 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308243 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008245 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308247 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008249 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308251 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008253 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8255 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308257};
8258
8259static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008260 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008264 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008268 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008272 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308274 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008276 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308278 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008280 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308282 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008284 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008288 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308290 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008292 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308294 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008296 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308298 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008300 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008304 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308306 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008308 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308310 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008312 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008320 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308322 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008324 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8326 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308328};
8329
8330static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008331 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308333 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008335 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308337 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008339 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308341 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008343 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308345 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008347 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308349 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008351 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308353 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008355 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308357 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008359 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308361 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008363 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308365 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008367 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308369 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008371 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008375 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008379 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008383 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008387 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008391 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308393 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008395 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308397 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008399 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8401 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308403};
8404
8405static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008418 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008430 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308432 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008434 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308436 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008438 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008442 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008446 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008450 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008462 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308464 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
8470};
8471
8472static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
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 Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008533 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308535 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008537 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308539 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008541 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8543 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308545};
8546
8547static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008556 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008560 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008564 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008568 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008572 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008576 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008580 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008584 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008588 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008592 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008596 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008600 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008604 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008616 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8618 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620};
8621
8622static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008663 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008667 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008671 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008679 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008691 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8693 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695};
8696
Rohit Kumara5077932017-09-10 22:05:05 +05308697static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308708 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008710 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008766 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
8768 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308770};
8771
8772static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008773 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008777 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308779 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008781 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8782 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308783 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008789 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008809 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
8837};
8838
8839static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008840 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008844 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008848 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008852 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008872 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008876 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308878 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008880 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8881 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308882 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008884 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8885 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308886 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008888 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008908 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
8910 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308912};
8913
8914static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008923 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308925 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008939 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308941 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008943 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308945 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008947 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308949 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008951 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308953 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008955 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8956 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308957 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008959 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308961 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008963 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008967 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008971 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008975 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008979 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008983 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
8985 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308987};
8988
8989static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009022 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309024 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009026 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9027 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309028 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009030 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9031 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309032 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009034 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309036 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009058 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9060 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309062};
9063
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309064static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009097 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009169 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009173 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9174 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309175 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009177 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9178 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309179 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009181 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9182 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309183 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009185 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9186 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309187 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009189 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9190 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009193 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9194 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309195 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009197 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9198 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309199 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009201 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9202 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309203 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009205 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9206 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309207 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009209 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9210 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309211 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009213 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9214 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009217 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9218 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309219 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009221 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9222 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309223 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009225 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9226 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309227 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009229 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9230 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309231 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009233 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9234 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309235 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009237 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9238 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309239 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009241 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9242 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309243 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9244 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309245 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9246 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9248 msm_routing_put_audio_mixer),
9249 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9250 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9251 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9252 msm_routing_put_audio_mixer),
9253 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9254 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9255 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9256 msm_routing_put_audio_mixer),
9257 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9258 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9260 msm_routing_put_audio_mixer),
9261 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9262 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9263 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9264 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9267 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9268 msm_routing_put_audio_mixer),
9269 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9270 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9271 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9272 msm_routing_put_audio_mixer),
9273 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9274 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9275 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9276 msm_routing_put_audio_mixer),
9277 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9278 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9279 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9280 msm_routing_put_audio_mixer),
9281 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9282 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9283 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9284 msm_routing_put_audio_mixer),
9285 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9286 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9287 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9288 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009289 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9290 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9291 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9292 msm_routing_put_audio_mixer),
9293 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9294 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9295 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9296 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297};
9298
9299static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009300 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9301 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009304 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9305 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309306 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009308 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9309 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309310 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009312 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9313 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309314 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009316 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9317 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009320 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9321 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309322 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009324 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9325 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309326 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009328 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9329 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309330 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009332 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9333 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009336 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9337 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309338 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009340 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9341 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309342 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009344 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9345 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309346 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009348 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9349 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309350 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009352 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9353 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309354 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009356 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9357 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309358 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009360 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9361 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309362 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009364 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9365 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309366 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009368 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9369 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309370 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009372 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9373 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309374 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009376 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9377 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309378 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009380 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9381 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009384 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9385 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309386 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009388 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9389 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309390 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009392 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9393 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309394 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009396 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9397 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309398 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009400 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9401 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309402 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009404 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309406 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009408 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309410 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009412 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309414 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009416 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9417 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009420 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309422 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009424 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9425 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309426 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009428 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9429 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309430 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009432 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309434 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309436 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9438 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
9440 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9442 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
9444 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
9448 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
9452 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9454 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309456 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9458 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
9460 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9462 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
9464 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9466 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
9468 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9470 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
9472 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9474 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
9476 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9478 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009480 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9482 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
9484 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9486 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309488};
9489
9490static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009495 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009499 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309501 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009507 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009511 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309513 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009515 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009539 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309541 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009555 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309557 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009567 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009571 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009583 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009587 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009595 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009599 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009603 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009607 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009611 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009615 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9616 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309617 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009619 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9620 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309621 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009623 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9624 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309625 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9626 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309627 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9628 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9629 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9630 msm_routing_put_audio_mixer),
9631 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9632 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9633 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9634 msm_routing_put_audio_mixer),
9635 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9636 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9637 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9638 msm_routing_put_audio_mixer),
9639 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9640 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9641 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9642 msm_routing_put_audio_mixer),
9643 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9644 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9645 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9646 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9649 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9650 msm_routing_put_audio_mixer),
9651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9653 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9654 msm_routing_put_audio_mixer),
9655 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9656 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9657 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9658 msm_routing_put_audio_mixer),
9659 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9660 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9662 msm_routing_put_audio_mixer),
9663 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9664 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9665 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9666 msm_routing_put_audio_mixer),
9667 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9668 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9670 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009671 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9672 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9673 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9674 msm_routing_put_audio_mixer),
9675 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9676 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9677 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9678 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679};
9680
9681static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009682 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009686 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309688 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009690 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9691 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309692 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009694 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9695 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309696 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009698 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9699 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309700 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009702 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9703 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309704 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009706 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9707 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309708 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009710 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9711 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309712 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009714 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9715 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309716 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009718 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9719 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309720 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009722 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9723 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309724 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009726 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9727 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309728 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009730 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9731 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309732 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009734 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9735 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309736 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009738 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9739 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309740 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009742 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9743 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009746 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9747 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309748 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009750 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9751 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309752 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009754 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9755 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309756 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009758 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9759 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309760 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009762 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9763 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309764 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009766 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9767 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309768 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009770 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9771 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309772 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009774 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9775 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309776 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009778 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9779 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309780 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009782 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9783 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309784 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009786 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9787 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309788 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009790 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9791 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309792 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009794 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9795 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309796 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009798 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9799 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309800 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009802 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9803 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309804 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009806 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9807 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309808 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009810 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9811 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309812 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9813 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309814 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9815 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9816 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9817 msm_routing_put_audio_mixer),
9818 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9819 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9820 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9821 msm_routing_put_audio_mixer),
9822 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9823 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9824 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9825 msm_routing_put_audio_mixer),
9826 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9827 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9828 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9829 msm_routing_put_audio_mixer),
9830 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9831 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9832 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9833 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309834 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9835 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9836 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9837 msm_routing_put_audio_mixer),
9838 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9839 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9840 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9841 msm_routing_put_audio_mixer),
9842 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9843 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9844 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9845 msm_routing_put_audio_mixer),
9846 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9847 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9848 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9849 msm_routing_put_audio_mixer),
9850 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9851 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9852 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9853 msm_routing_put_audio_mixer),
9854 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9855 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9856 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9857 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009858 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9859 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9860 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9861 msm_routing_put_audio_mixer),
9862 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9863 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9864 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9865 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866};
9867
9868static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009869 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9870 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309871 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009873 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9874 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309875 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009877 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9878 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309879 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009881 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9882 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309883 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009885 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9886 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309887 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009889 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9890 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309891 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009893 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9894 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309895 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009897 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9898 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309899 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009901 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9902 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309903 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009905 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9906 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309907 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009909 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9910 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309911 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009913 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9914 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309915 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009917 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309919 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009921 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309923 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009925 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9926 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309927 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009929 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9930 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309931 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009933 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9934 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309935 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009937 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9938 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309939 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009941 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9942 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309943 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009945 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9946 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309947 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009949 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9950 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309951 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009953 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9954 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309955 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009957 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9958 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309959 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009961 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9962 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309963 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009965 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9966 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309967 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009969 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9970 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309971 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009973 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9974 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309975 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009977 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9978 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309979 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009981 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9982 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309983 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009985 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9986 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309987 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010009 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010013 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010015 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010025 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10027 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
10029 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10031 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
10033 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10035 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
10037 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10039 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
10041 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10043 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010045 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10047 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
10049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10051 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
10053 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10055 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
10057 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10059 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
10061 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10063 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10064 msm_routing_put_audio_mixer),
10065 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10066 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10067 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10068 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010069 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10070 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10071 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10072 msm_routing_put_audio_mixer),
10073 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10074 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10075 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10076 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010077};
10078
10079static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010084 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010086 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010088 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010092 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010094 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010096 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010098 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010100 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010102 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010104 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010106 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010108 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010110 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010112 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010114 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010116 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010118 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010120 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010122 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010124 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010126 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010128 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010132 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010134 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010136 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10137 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010138 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010140 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10141 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010142 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010144 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10145 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010146 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010148 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10149 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010150 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010152 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10153 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010154 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010156 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10157 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010158 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010160 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10161 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010162 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010164 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10165 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010166 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010168 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10169 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010170 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010172 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10173 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010174 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010176 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10177 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010178 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010180 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10181 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010182 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010184 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10185 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010186 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010188 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10189 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010190 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010192 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10193 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010194 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010196 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10197 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010198 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010200 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10201 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010202 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010204 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10205 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010206 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010208 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10209 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010210 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010212 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10213 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010214 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10215 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010216 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10217 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10218 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10219 msm_routing_put_audio_mixer),
10220 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10221 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10222 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10223 msm_routing_put_audio_mixer),
10224 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10225 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10226 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10227 msm_routing_put_audio_mixer),
10228 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10229 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10230 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10231 msm_routing_put_audio_mixer),
10232 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10233 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10234 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10235 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010236 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10237 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10238 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10239 msm_routing_put_audio_mixer),
10240 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10241 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10242 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10243 msm_routing_put_audio_mixer),
10244 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10245 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10246 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10247 msm_routing_put_audio_mixer),
10248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10250 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10251 msm_routing_put_audio_mixer),
10252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10254 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10255 msm_routing_put_audio_mixer),
10256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10258 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10259 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010260 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10261 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10262 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10263 msm_routing_put_audio_mixer),
10264 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10265 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10266 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10267 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010268};
10269
10270static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010271 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10272 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010273 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010275 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10276 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010277 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010279 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10280 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010281 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010283 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10284 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010285 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010287 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10288 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010289 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010291 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10292 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010293 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010295 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10296 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010297 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010299 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10300 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010301 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010303 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10304 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010307 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10308 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010309 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010311 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10312 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010313 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010315 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10316 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010317 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010319 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10320 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010321 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010323 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10324 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010325 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010327 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10328 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010329 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010331 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10332 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010333 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010335 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10336 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010337 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010339 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10340 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010341 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010343 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10344 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010345 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010347 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10348 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010349 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010351 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10352 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010353 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010355 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10356 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010357 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010359 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10360 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010361 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010363 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10364 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010365 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010367 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10368 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010369 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010371 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10372 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010373 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010375 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10376 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010377 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010379 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10380 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010381 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010383 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10384 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010385 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010387 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10388 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010389 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010391 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10392 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010393 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010395 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10396 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010397 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010399 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10400 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010401 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010403 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10404 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010407 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010409 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010411 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10413 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10414 msm_routing_put_audio_mixer),
10415 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10417 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10418 msm_routing_put_audio_mixer),
10419 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10420 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10421 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10422 msm_routing_put_audio_mixer),
10423 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10424 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10425 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10426 msm_routing_put_audio_mixer),
10427 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10428 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10429 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10430 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010431 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10432 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10433 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10434 msm_routing_put_audio_mixer),
10435 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10436 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10437 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10438 msm_routing_put_audio_mixer),
10439 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10441 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10442 msm_routing_put_audio_mixer),
10443 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10445 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10446 msm_routing_put_audio_mixer),
10447 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10449 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
10451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10453 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010455 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10457 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
10459 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10461 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010463};
10464
Asish Bhattacharya34504582017-08-08 12:55:01 +053010465static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010466 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010470 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010472 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010488 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010490 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010492 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010494 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010496 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010498 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010500 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010502 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010504 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010506 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10507 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010508 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010510 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010512 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010514 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010516 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010518 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10519 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010520 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010522 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010524 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010526 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010528 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010530 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010532 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010534 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010536 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010538 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010540 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010542 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010544 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010546 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10547 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010548 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010550 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10551 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010552 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010554 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10555 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010556 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010558 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10559 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010560 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010562 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10563 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010564 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010566 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10567 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010568 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010570 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10571 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010572 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010574 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10575 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010576 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010578 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10579 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010580 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010582 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10583 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010584 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010586 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10587 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010588 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010590 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10591 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010592 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010594 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10595 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010596 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010598 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10599 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010600 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010602 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10603 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010604 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10605 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010606 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10607 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10608 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10609 msm_routing_put_audio_mixer),
10610 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10611 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10612 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10613 msm_routing_put_audio_mixer),
10614 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10615 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10616 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10617 msm_routing_put_audio_mixer),
10618 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10619 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10620 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10621 msm_routing_put_audio_mixer),
10622 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10623 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10624 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10625 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010626 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10627 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10628 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10629 msm_routing_get_audio_mixer,
10630 msm_routing_put_audio_mixer),
10631 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10633 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10634 msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
10636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10638 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10639 msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
10641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10643 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10644 msm_routing_get_audio_mixer,
10645 msm_routing_put_audio_mixer),
10646 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10647 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10648 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10649 msm_routing_get_audio_mixer,
10650 msm_routing_put_audio_mixer),
10651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10653 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10654 msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010656 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10658 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
10660 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10662 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010664};
10665
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010667 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010669 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010671 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010673 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010675 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010677 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010679 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010681 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010683 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010685 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010687 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010691 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010695 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010699 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010703 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010707 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010711 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010715 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010719 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010721 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010723 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010725 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010727 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010729 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010731 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010733 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010735 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010737 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010739 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010741 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010743 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010745 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10746 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010747 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10749 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
10751 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10753 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
10755 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10756 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10757 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10758 msm_routing_put_audio_mixer),
10759 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10761 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
10763 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10765 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010767 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10769 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
10771 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10773 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
10775 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10777 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10778 msm_routing_put_audio_mixer),
10779 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10781 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
10783 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10785 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
10787 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10789 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010791 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10793 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
10795 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10797 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010799};
10800
Laxminath Kasam38070be2017-08-17 18:21:59 +053010801static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010802 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010804 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010806 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010808 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010810 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10811 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010812 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010814 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10815 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010816 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010818 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10819 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010820 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010822 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10823 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010824 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010826 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10827 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010828 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010830 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10831 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010832 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010834 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10835 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070010836 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010838 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10839 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010840 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010842 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010844 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010846 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010848 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010850 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010852 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010856 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010858 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010860 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010862 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010864 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010866 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010868 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010870 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010872 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010874 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010876 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010878 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010880 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010882 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010884 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010886 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010888 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010890 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010892 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010894 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010896 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010898 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010900 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010902 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010904 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10905 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010906 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
10910 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10912 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
10914 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10916 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10917 msm_routing_put_audio_mixer),
10918 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10919 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10920 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10921 msm_routing_put_audio_mixer),
10922 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10924 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10925 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010926 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10927 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10928 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10929 msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
10931 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10933 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10934 msm_routing_get_audio_mixer,
10935 msm_routing_put_audio_mixer),
10936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10938 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10939 msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
10941 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10943 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10944 msm_routing_get_audio_mixer,
10945 msm_routing_put_audio_mixer),
10946 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10947 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10948 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10949 msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
10951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10953 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10954 msm_routing_get_audio_mixer,
10955 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010956 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10957 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10958 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10959 msm_routing_put_audio_mixer),
10960 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10961 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10962 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053010964};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010965static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010966 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010968 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010970 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10971 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010972 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010974 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10975 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010976 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010978 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010980 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010982 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10983 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010984 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010986 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10987 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010988 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010990 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10991 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010992 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010994 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010996 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10997 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080010998 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11000 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11001 msm_routing_put_audio_mixer),
11002 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11004 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11005 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011006 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11007 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11008 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11009 msm_routing_put_audio_mixer),
11010 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11011 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11012 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11013 msm_routing_put_audio_mixer),
11014 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11015 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11016 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11017 msm_routing_put_audio_mixer),
11018 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11019 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11020 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11021 msm_routing_put_audio_mixer),
11022 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11023 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11024 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11025 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011026 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11027 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11028 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11029 msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
11031 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11033 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11034 msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
11036 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11038 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11039 msm_routing_get_audio_mixer,
11040 msm_routing_put_audio_mixer),
11041 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11042 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11043 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11044 msm_routing_get_audio_mixer,
11045 msm_routing_put_audio_mixer),
11046 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11047 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11048 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11049 msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
11051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11053 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11054 msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011056 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11058 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
11060 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11062 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011064};
11065
11066static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011067 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011069 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011071 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011073 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011075 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011077 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11078 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011079 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11081 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011083 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11085 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011087 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011089 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011091 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011093 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011095 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011097 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011099 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011101 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011103 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011107 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011109 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011111 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11113 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
11115 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11117 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
11119 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11121 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
11123 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11125 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
11127 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11129 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11133 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11134 msm_routing_get_audio_mixer,
11135 msm_routing_put_audio_mixer),
11136 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11138 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11139 msm_routing_get_audio_mixer,
11140 msm_routing_put_audio_mixer),
11141 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11142 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11143 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11144 msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
11146 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11148 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11149 msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
11151 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11153 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11154 msm_routing_get_audio_mixer,
11155 msm_routing_put_audio_mixer),
11156 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11157 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11158 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11159 msm_routing_get_audio_mixer,
11160 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011161 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11163 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11164 msm_routing_put_audio_mixer),
11165 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11166 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11167 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011169};
11170
11171static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011172 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11173 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011174 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011176 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11177 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011178 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011180 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011182 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011184 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011186 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011188 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11189 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011190 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011192 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11193 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011194 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011196 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11197 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011198 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011200 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11201 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011202 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011204 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11206 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11207 msm_routing_put_audio_mixer),
11208 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11210 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11211 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011212 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11213 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11214 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11215 msm_routing_put_audio_mixer),
11216 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11218 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11219 msm_routing_put_audio_mixer),
11220 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11221 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11222 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11223 msm_routing_put_audio_mixer),
11224 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11225 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11226 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11227 msm_routing_put_audio_mixer),
11228 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11230 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11231 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011232 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11234 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11235 msm_routing_get_audio_mixer,
11236 msm_routing_put_audio_mixer),
11237 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11238 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11239 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11240 msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
11242 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11244 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11245 msm_routing_get_audio_mixer,
11246 msm_routing_put_audio_mixer),
11247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11249 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11250 msm_routing_get_audio_mixer,
11251 msm_routing_put_audio_mixer),
11252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11254 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11255 msm_routing_get_audio_mixer,
11256 msm_routing_put_audio_mixer),
11257 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11259 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11260 msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011262 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11264 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
11266 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11268 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011270};
11271
11272static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011273 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011275 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011277 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011279 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011281 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011283 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011285 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011287 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011289 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011291 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011293 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011295 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011297 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011299 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011301 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011303 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011305 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011307 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011309 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11310 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011311 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011313 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011315 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011317 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11318 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011319 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011321 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11322 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011323 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011325 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11326 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011327 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011329 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11330 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011331 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011333 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11334 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011335 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011337 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11338 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011339 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011341 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11342 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011343 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011345 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11346 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011347 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011349 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011351 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011353 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11354 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011355 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011357 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11358 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011359 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011361 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11362 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011363 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011365 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11366 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011367 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011369 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011371 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11372 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011373};
11374
11375static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11376 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_AUXPCM_TX,
11378 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
11380 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11381 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11382 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
11384 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11386 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11387 msm_routing_put_audio_mixer),
11388 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11390 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11391 msm_routing_put_audio_mixer),
11392 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11393 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11394 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11395 msm_routing_put_audio_mixer),
11396 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11397 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11398 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11399 msm_routing_put_audio_mixer),
11400 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11401 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11402 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11403 msm_routing_put_audio_mixer),
11404 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11405 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11406 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
11408 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11410 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11411 msm_routing_put_audio_mixer),
11412 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11413 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11414 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11415 msm_routing_put_audio_mixer),
11416 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11417 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11418 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11419 msm_routing_put_audio_mixer),
11420 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11421 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11422 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11423 msm_routing_put_audio_mixer),
11424 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11425 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11426 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11427 msm_routing_put_audio_mixer),
11428 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11429 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11430 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11431 msm_routing_put_audio_mixer),
11432 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11434 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11435 msm_routing_put_audio_mixer),
11436 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11437 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11438 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11439 msm_routing_put_audio_mixer),
11440 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11442 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11443 msm_routing_put_audio_mixer),
11444 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11446 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11447 msm_routing_put_audio_mixer),
11448 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11450 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11451 msm_routing_put_audio_mixer),
11452 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11453 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11454 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11455 msm_routing_put_audio_mixer),
11456 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11457 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11458 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11459 msm_routing_put_audio_mixer),
11460 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11462 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11463 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011464 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11466 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11467 msm_routing_put_audio_mixer),
11468 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11469 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11470 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11471 msm_routing_put_audio_mixer),
11472 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11473 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11474 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11475 msm_routing_put_audio_mixer),
11476 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11477 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11478 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11479 msm_routing_put_audio_mixer),
11480 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11482 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11483 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011484 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11485 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11486 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11487 msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
11489 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11491 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11492 msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
11494 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11496 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11497 msm_routing_get_audio_mixer,
11498 msm_routing_put_audio_mixer),
11499 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11500 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11501 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11502 msm_routing_get_audio_mixer,
11503 msm_routing_put_audio_mixer),
11504 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11505 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11506 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11507 msm_routing_get_audio_mixer,
11508 msm_routing_put_audio_mixer),
11509 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11511 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11512 msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011514 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11516 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
11518 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11520 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011522};
11523
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011524static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011525 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011527 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011529 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011531 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011533 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011535 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011537 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011539 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011541 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011543 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011545 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011547 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011549 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011551 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011553 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011555 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011557 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11559 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
11561 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11563 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011565 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11567 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
11569 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11571 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
11573 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11575 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
11577 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11579 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
11581 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11583 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011585 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11587 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11588 msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
11590 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11592 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11593 msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
11595 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11597 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11598 msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
11600 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11602 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11603 msm_routing_get_audio_mixer,
11604 msm_routing_put_audio_mixer),
11605 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11607 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11608 msm_routing_get_audio_mixer,
11609 msm_routing_put_audio_mixer),
11610 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11612 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11613 msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011615 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11617 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
11619 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11621 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011623};
11624
11625static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011626 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011628 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011630 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011632 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011634 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011636 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011638 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011640 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011644 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011648 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011652 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011654 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011656 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011658 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11660 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
11662 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11664 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011666 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11668 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
11670 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11672 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
11674 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11676 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
11678 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11680 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
11682 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11684 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11688 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11689 msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
11691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11693 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11694 msm_routing_get_audio_mixer,
11695 msm_routing_put_audio_mixer),
11696 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11697 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11698 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11699 msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
11701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11703 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11704 msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11708 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11709 msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
11711 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11713 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11714 msm_routing_get_audio_mixer,
11715 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011716 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11717 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11718 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11719 msm_routing_put_audio_mixer),
11720 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11721 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11722 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11723 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011724};
11725
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011726static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011727 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11728 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011729 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11730 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011731 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011733 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11734 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011735 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011737 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11738 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011739 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11740 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011741 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11742 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011743 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11744 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011745 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11746 msm_routing_put_voice_mixer),
11747};
11748
11749static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011750 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011752 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011754 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011756 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11757 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011758 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011760 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11761 msm_routing_put_voice_mixer),
11762};
11763
11764static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011765 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011767 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11768 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011769 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011771 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11772 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011773 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011775 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11776 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011777 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011779 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11780 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011781 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011783 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11784 msm_routing_put_voice_mixer),
11785};
11786
11787static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011788 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011790 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11791 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011792 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11793 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011794 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11795 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011796 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11797 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011798 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11799 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011800 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11801 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011802 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11803 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011804 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11805 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011806 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11807 msm_routing_put_voice_mixer),
11808};
11809
11810static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011811 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11812MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011813 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11814 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011815 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11816MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011817 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11818 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011819 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11820MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011821 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11822 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011823 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11824MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011825 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11826 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011827 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11828MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011829 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11830 msm_routing_put_voice_mixer),
11831};
11832
11833static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011834 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011836 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11837 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011838 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11839 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011840 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11841 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011842 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11843 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011844 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11845 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011846 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11847 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011848 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11849 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011850 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11851 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011852 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11853 msm_routing_put_voice_mixer),
11854};
11855
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011856static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011857 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11858MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011859 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11860 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011861 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11862MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011863 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11864 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011865 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11866MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011867 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11868 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011869 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11870MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011871 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11872 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011873 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11874MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011875 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11876 msm_routing_put_voice_mixer),
11877};
11878
Karthikeyan Mani57550082018-05-03 18:43:58 -070011879static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
11880 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11882 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11883 msm_routing_put_voice_mixer),
11884 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11886 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11887 msm_routing_put_voice_mixer),
11888 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11890 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11891 msm_routing_put_voice_mixer),
11892 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11894 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11895 msm_routing_put_voice_mixer),
11896 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11898 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11899 msm_routing_put_voice_mixer),
11900};
11901
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011902static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011903 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011905 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11906 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011907 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011909 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011911 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011913 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11914 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011915 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011917 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11918 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011919 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011921 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11922 msm_routing_put_voice_mixer),
11923};
11924
11925static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011926 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11927 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011928 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11929 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011930 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11931 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011932 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011934 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11935 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011936 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011938 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11939 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011940 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011942 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11943 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011944 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11945 msm_routing_put_voice_mixer),
11946};
11947
11948static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011949 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11950MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011951 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11952 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011953 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11954MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011955 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11956 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011957 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11958MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011959 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11960 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011961 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11962MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011963 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11964 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011965 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11966MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011967 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11968 msm_routing_put_voice_mixer),
11969};
11970
11971static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011972 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11973MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011974 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11975 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011976 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11977MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011978 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11979 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011980 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11981MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011982 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11983 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011984 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11985MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011986 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11987 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011988 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11989MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011990 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11991 msm_routing_put_voice_mixer),
11992};
11993
11994static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011995 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011997 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11998 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011999 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012001 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12002 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012003 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012005 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12006 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012007 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012009 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12010 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012011 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012013 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12014 msm_routing_put_voice_mixer),
12015};
12016
12017static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012018 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12019 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012020 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12021 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012022 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12023 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012024 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12025 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012026 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12027 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012028 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12029 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012030 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12031 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012032 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12033 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012034 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12035 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012036 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12037 msm_routing_put_voice_mixer),
12038};
12039
12040static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012041 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012043 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12044 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012045 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012047 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12048 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012049 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012051 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12052 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012053 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012055 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12056 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012057 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012059 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12060 msm_routing_put_voice_mixer),
12061};
12062
12063static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012064 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012066 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12067 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012068 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12069 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012070 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12071 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012072 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12073 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012074 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12075 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012076 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12077 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012078 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12079 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012080 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12081 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012082 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12083 msm_routing_put_voice_mixer),
12084};
12085
12086static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012087 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12088 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012089 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12090 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012091 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12092 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012093 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12094 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012095 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12096 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012097 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12098 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012099 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12100 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012101 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12102 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012103 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12104 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012105 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12106 msm_routing_put_voice_mixer),
12107};
12108
12109static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012110 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012112 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12113 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012114 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012116 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012118 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012120 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012122 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012124 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12125 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012126 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012128 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12129 msm_routing_put_voice_mixer),
12130};
12131
12132static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012133 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12134MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012135 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12136 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012137 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12138MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012139 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12140 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012141 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12142MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012143 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12144 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012145 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12146MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012147 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12148 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012149 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12150MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012151 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12152 msm_routing_put_voice_mixer),
12153};
12154
12155static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012156 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12157MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012158 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12159 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012160 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12161MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012162 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12163 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012164 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12165MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012166 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12167 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012168 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12169MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012170 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12171 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012172 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12173MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012174 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12175 msm_routing_put_voice_mixer),
12176};
12177
12178static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012179 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12180MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012181 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12182 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012183 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12184MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012185 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12186 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012187 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12188MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012189 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12190 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012191 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12192MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012193 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12194 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012195 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12196MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012197 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12198 msm_routing_put_voice_mixer),
12199};
12200
Rohit Kumara5077932017-09-10 22:05:05 +053012201static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012202 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12203MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012204 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12205 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012206 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12207MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012208 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12209 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012210 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12211MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012212 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12213 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012214 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12215MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012216 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12217 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012218 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12219MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012220 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12221 msm_routing_put_voice_mixer),
12222};
12223
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012224static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012225 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012227 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12228 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012229 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012231 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12232 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012233 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012235 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12236 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012237 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12238 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012239 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12240 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012241 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12242 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012243 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12244 msm_routing_put_voice_mixer),
12245};
12246
12247static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012248 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12249MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012250 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12251 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012252 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12253MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012254 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12255 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012256 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12257MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012258 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12259 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012260 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12261MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012262 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12263 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012264 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12265MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012266 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12267 msm_routing_put_voice_mixer),
12268};
12269
12270static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012271 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012273 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12274 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012275 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012277 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12278 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012279 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012281 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12282 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012283 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12286 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012287 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012289 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12290 msm_routing_put_voice_mixer),
12291};
12292
12293static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012294 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012296 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12297 msm_routing_put_voice_mixer),
12298};
12299
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012300static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12301 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12303 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12304 msm_routing_put_voice_mixer),
12305 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12307 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12308 msm_routing_put_voice_mixer),
12309 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12311 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12312 msm_routing_put_voice_mixer),
12313 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12315 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12316 msm_routing_put_voice_mixer),
12317 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12319 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12320 msm_routing_put_voice_mixer),
12321};
12322
12323static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12324 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12325 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12326 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12327 msm_routing_put_voice_mixer),
12328 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12329 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12330 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12331 msm_routing_put_voice_mixer),
12332 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12333 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12334 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12335 msm_routing_put_voice_mixer),
12336 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12337 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12338 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12339 msm_routing_put_voice_mixer),
12340 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12341 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12342 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12343 msm_routing_put_voice_mixer),
12344};
12345
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012346static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12347 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12349 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12350 msm_routing_put_voice_mixer),
12351 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12353 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12354 msm_routing_put_voice_mixer),
12355 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12357 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12358 msm_routing_put_voice_mixer),
12359 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12361 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12362 msm_routing_put_voice_mixer),
12363 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12365 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12366 msm_routing_put_voice_mixer),
12367};
12368
12369static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12370 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12371 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12372 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12373 msm_routing_put_voice_mixer),
12374 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12376 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12377 msm_routing_put_voice_mixer),
12378 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12380 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12381 msm_routing_put_voice_mixer),
12382 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12384 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12385 msm_routing_put_voice_mixer),
12386 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12388 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12389 msm_routing_put_voice_mixer),
12390};
12391
12392static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12393 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12395 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12396 msm_routing_put_voice_mixer),
12397 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12399 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12400 msm_routing_put_voice_mixer),
12401 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12403 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12404 msm_routing_put_voice_mixer),
12405 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12407 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12408 msm_routing_put_voice_mixer),
12409 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12411 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12412 msm_routing_put_voice_mixer),
12413};
12414
12415static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12416 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12418 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12419 msm_routing_put_voice_mixer),
12420 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12421 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12422 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12423 msm_routing_put_voice_mixer),
12424 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12425 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12426 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12427 msm_routing_put_voice_mixer),
12428 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12429 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12430 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12431 msm_routing_put_voice_mixer),
12432 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12434 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12435 msm_routing_put_voice_mixer),
12436};
12437
12438static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12439 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12440 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12441 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12442 msm_routing_put_voice_mixer),
12443 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12444 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12445 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12446 msm_routing_put_voice_mixer),
12447 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12448 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12449 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12450 msm_routing_put_voice_mixer),
12451 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12453 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12454 msm_routing_put_voice_mixer),
12455 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12457 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12458 msm_routing_put_voice_mixer),
12459};
12460
12461static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12462 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12464 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12465 msm_routing_put_voice_mixer),
12466 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12468 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12469 msm_routing_put_voice_mixer),
12470 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12472 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12473 msm_routing_put_voice_mixer),
12474 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12476 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12477 msm_routing_put_voice_mixer),
12478 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12479 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12480 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12481 msm_routing_put_voice_mixer),
12482};
12483
12484static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12485 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12486 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12487 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12488 msm_routing_put_voice_mixer),
12489 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12491 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12492 msm_routing_put_voice_mixer),
12493 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12494 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12495 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12496 msm_routing_put_voice_mixer),
12497 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12498 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12499 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12500 msm_routing_put_voice_mixer),
12501 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12502 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12503 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12504 msm_routing_put_voice_mixer),
12505};
12506
12507static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12508 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12510 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12511 msm_routing_put_voice_mixer),
12512 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12513 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12514 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12515 msm_routing_put_voice_mixer),
12516 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12517 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12518 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12519 msm_routing_put_voice_mixer),
12520 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12521 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12522 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12523 msm_routing_put_voice_mixer),
12524 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12526 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12527 msm_routing_put_voice_mixer),
12528};
12529
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012530static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012531 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12532 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012533 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12534 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012535 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012537 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12538 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012539};
12540
12541static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012542 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12543 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012544 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12545 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012546 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12547 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012548 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12549 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012550};
12551
12552static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012553 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12554 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012555 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12556 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012557 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12558 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012559 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12560 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012561};
12562
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012563static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012564 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012566 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12567 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012570 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12571 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012572 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012573 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12574 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012575 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012576 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12577 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012578 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12580 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012581 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012582 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12583 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012585 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12586 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012587 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012588 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12589 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012590 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012591 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12592 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012593 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012594 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12595 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012596 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012597 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12598 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012599 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012600 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12601 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012602 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012603 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12604 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012605 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12607 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12610 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012611 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
12612 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012613 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12614 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012615 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
12616MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012617 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012618 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12619 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12620 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12621 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12622 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12623 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012624 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12626 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12627 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12629 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12630 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
12631 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
12632 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12633 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
12634 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
12635 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
12637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
12638 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12639 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
12641 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012642};
12643
12644static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
12646 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12648 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012649 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
12650 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012651 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12652 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012653 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12655 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012656 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012657 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12658 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012659 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012660 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12661 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012662 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012663 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12664 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012665 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012666 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12667 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012668 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012669 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12670 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012671 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012672 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12673 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012674 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012675 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12676 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012677 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012678 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12679 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012680 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012681 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12682 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012683 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012684 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12685 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012686 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012687 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12688 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012689 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012690 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12691 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012692 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012693 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12694 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012695 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12697 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12698 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12699 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12700 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12703 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12704 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12705 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12706 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12707 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
12708 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
12709 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12710 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
12711 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
12712 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12713 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
12714 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
12715 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12716 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
12717 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
12718 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012719};
12720
12721static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012722 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
12723 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012724 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12725 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012726 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
12727 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012728 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12729 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012730 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
12731 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012732 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12733 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012734 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
12735 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012736 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
12739 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012740 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012742 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
12743 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012744 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12745 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012746 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12747 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012748 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12749 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012750 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12751 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012752 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012754 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12755 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012756 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12757 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012758 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12759 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012760 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12761 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012762 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
12763 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012764 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12765 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012766 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
12767 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012768 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12769 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012770 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
12771 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012772 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12773 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012774 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
12775 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012776 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12777 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012778 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
12779 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012780 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12781 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012782 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
12783 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012784 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12785 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012786 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12787 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12788 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12789 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12791 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012792 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12793 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12794 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12795 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12797 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12798 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
12800 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12801 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
12802 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
12803 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12804 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
12805 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
12806 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12807 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
12809 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012810};
12811
12812static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012813 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12816 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012817 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012819 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12820 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012821 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012823 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12824 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012825 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12826 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012827 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12828 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012829 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012831 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12832 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012833 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012835 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12836 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012837 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012839 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12840 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012841 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012843 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12844 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012845 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12846 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012847 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12848 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012849 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12850 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012851 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12852 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012853 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12854 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012855 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12856 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012857 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12858 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012859 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12860 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012861 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12862 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012863 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12864 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012865 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12866 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012867 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12868 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012869 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12870 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012871 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12872 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012873 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
12874 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012875 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12876 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012877 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12878 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012879 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12880 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012881 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12882 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012883 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12884 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012885 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12886 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012887 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12888 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012889 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12890 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12891 1, 0, msm_routing_get_voice_stub_mixer,
12892 msm_routing_put_voice_stub_mixer),
12893 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12894 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12895 1, 0, msm_routing_get_voice_stub_mixer,
12896 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012897 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12898 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12899 1, 0, msm_routing_get_voice_stub_mixer,
12900 msm_routing_put_voice_stub_mixer),
12901 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12903 1, 0, msm_routing_get_voice_stub_mixer,
12904 msm_routing_put_voice_stub_mixer),
12905 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12906 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
12907 1, 0, msm_routing_get_voice_stub_mixer,
12908 msm_routing_put_voice_stub_mixer),
12909 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12910 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
12911 1, 0, msm_routing_get_voice_stub_mixer,
12912 msm_routing_put_voice_stub_mixer),
12913 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12914 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
12915 1, 0, msm_routing_get_voice_stub_mixer,
12916 msm_routing_put_voice_stub_mixer),
12917 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
12919 1, 0, msm_routing_get_voice_stub_mixer,
12920 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012921};
12922
12923static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012924 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012926 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12927 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012928 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012930 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12931 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012932 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012934 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12935 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012936 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012938 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12939 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012940 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12941 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012942 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12943 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012944 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012946 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12947 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012948 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12949 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012950 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12951 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012952 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012954 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12955 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012956 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012958 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12959 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012960 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012962 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12963 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012964 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012966 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12967 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012968 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12969 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012970 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12971 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012972 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012974 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12975 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12979 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012980 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12981 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12983 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012984 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
12986 1, 0, msm_routing_get_voice_stub_mixer,
12987 msm_routing_put_voice_stub_mixer),
12988 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12989 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
12990 1, 0, msm_routing_get_voice_stub_mixer,
12991 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012992 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
12994 1, 0, msm_routing_get_voice_stub_mixer,
12995 msm_routing_put_voice_stub_mixer),
12996 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12997 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
12998 1, 0, msm_routing_get_voice_stub_mixer,
12999 msm_routing_put_voice_stub_mixer),
13000 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13002 1, 0, msm_routing_get_voice_stub_mixer,
13003 msm_routing_put_voice_stub_mixer),
13004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13006 1, 0, msm_routing_get_voice_stub_mixer,
13007 msm_routing_put_voice_stub_mixer),
13008 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13010 1, 0, msm_routing_get_voice_stub_mixer,
13011 msm_routing_put_voice_stub_mixer),
13012 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13014 1, 0, msm_routing_get_voice_stub_mixer,
13015 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016};
13017
13018static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13022 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13026 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13028 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13030 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13032 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13034 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13036 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13038 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13042 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13044 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13046 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013049 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13050 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13052 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013053 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13054 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013055 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13056 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013057 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13058 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13062 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013065 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13066 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013067 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013069 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13070 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013071 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13072 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013073 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13074 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013075 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013077 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13078 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013079 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13081 1, 0, msm_routing_get_voice_stub_mixer,
13082 msm_routing_put_voice_stub_mixer),
13083 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13085 1, 0, msm_routing_get_voice_stub_mixer,
13086 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013087 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13088 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13089 1, 0, msm_routing_get_voice_stub_mixer,
13090 msm_routing_put_voice_stub_mixer),
13091 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13093 1, 0, msm_routing_get_voice_stub_mixer,
13094 msm_routing_put_voice_stub_mixer),
13095 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13097 1, 0, msm_routing_get_voice_stub_mixer,
13098 msm_routing_put_voice_stub_mixer),
13099 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13101 1, 0, msm_routing_get_voice_stub_mixer,
13102 msm_routing_put_voice_stub_mixer),
13103 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13105 1, 0, msm_routing_get_voice_stub_mixer,
13106 msm_routing_put_voice_stub_mixer),
13107 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13109 1, 0, msm_routing_get_voice_stub_mixer,
13110 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013111};
13112
13113static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013116 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013118 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013120 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013122 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13124 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013125 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13127 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013128 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13129 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013130 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13131 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013132 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13133 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013134 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13135 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13137 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13139 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013140 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13141 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013142 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013144 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13145 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013146 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013148 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13149 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013150 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013152 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13153 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013154 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013156 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13157 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013158 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013160 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13161 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013162 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013164 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13165 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013166 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013168 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13169 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013170 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13171 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013172 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13173 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013174 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013176 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13177 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013178 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13179 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13180 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13181 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13183 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013184 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13186 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13187 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13188 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13189 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13190 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13192 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13193 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13195 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13196 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13197 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13198 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13199 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13200 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13201 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202};
13203
13204static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013205 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013207 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013211 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013215 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013219 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013221 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013223 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013227 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013229 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013231 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013235 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013237 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013239 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013241 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013243 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13244 msm_routing_put_port_mixer),
13245};
13246
13247static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013248 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13249 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013250 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013252 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13253 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013254 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013256 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013258 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013260 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13261 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013262 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013264 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13265 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013266 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013268 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013270 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013272 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013274 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013278 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013282 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13287 msm_routing_put_port_mixer),
13288};
13289
13290static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013291 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013293 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013295 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013297 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013299 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13300 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013301 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013303 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013305 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013307 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013309 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013311 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013313 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013315 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013317 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013319 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013321 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013323 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13324 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013325 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013327 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13328 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013329 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013331 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13332 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013333 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013335 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13336 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013337 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013339 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013341 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013343 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013345 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013347 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13348 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013349 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013351 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013353 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013355 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13356 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013357 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013359 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13360 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013361 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013363 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13364 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013365 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013367 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13368 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013369 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013371 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13372 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013373 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013375 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13376 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13377MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013378 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013379};
13380
13381static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013382 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13383 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013384 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013386 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13387 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013388 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013390 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13391 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013392 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013394 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013396 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013400 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013402 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013404 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13405 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013406};
13407
13408static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013409 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013411 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013413 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13414 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013415 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013417 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13418 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013419 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013421 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013423 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13424 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013425};
13426
13427static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013428 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13429 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013430 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013432 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13433 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013434 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013438 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13439 msm_routing_put_port_mixer),
13440};
13441
13442static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013443 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13444 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013445 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013447 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13448 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013449 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013451 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13452 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013453 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13454 msm_routing_put_port_mixer),
13455};
13456
Rohit Kumara5077932017-09-10 22:05:05 +053013457static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013458 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013460 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013462 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013464 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013466 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13467 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013468 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13469 msm_routing_put_port_mixer),
13470};
13471
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013472static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013473 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13474 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013475 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013477 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013479 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013481 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013483 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013485 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13486 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013487 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013489 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013491 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013493 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13494 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013495 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13496 msm_routing_put_port_mixer),
13497};
13498
13499static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013500 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13501 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013502 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013504 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013506 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013508 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13509 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013510 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013512 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13513 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013514 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013516 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13517 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013518 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13519 msm_routing_put_port_mixer),
13520};
13521
13522static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013523 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013525 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013527 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13528 MSM_BACKEND_DAI_SLIMBUS_6_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 Wang05d5e9a2018-03-28 16:45:03 +080013531 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13532 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013533 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013535 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13536 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013537 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013539 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013541 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013543 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13544 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013545 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013547 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13548 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013549 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013551 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013553 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013555 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013557 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013559 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013561 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013563 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013565 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013567 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13568 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013569 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13570 msm_routing_put_port_mixer),
13571};
13572
13573static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013574 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13575 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013576 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013578 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013580 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13581 msm_routing_put_port_mixer),
13582};
13583
13584static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013585 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013587 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013589 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013591 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13592 msm_routing_put_port_mixer),
13593};
13594
13595
13596static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013597 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013599 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13600 msm_routing_put_port_mixer),
13601};
13602
13603static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013606 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13607 msm_routing_put_port_mixer),
13608};
13609
Karthikeyan Mani57550082018-05-03 18:43:58 -070013610static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
13611 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13612 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13613 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13614 msm_routing_put_port_mixer),
13615};
13616
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013617static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013618 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13619 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013620 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13621 msm_routing_put_port_mixer),
13622};
13623
13624static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013625 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013629 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13632 msm_routing_put_port_mixer),
13633};
13634
13635static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013636 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013638 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013640 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13641 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013642 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013644 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13645 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013646 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013648 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13649 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013650 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013652 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13653 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013654 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013656 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13657 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013658 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013660 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13661 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013662 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013664 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13665 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013666 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013668 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13669 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013670 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013672 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13673 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013674 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13675 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013676};
13677
13678static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013679 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013681 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
13682 msm_routing_put_port_mixer),
13683};
13684
13685static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013686 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013688 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013690 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013692 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013694 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013696 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013698 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013700 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013702 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013704 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013706 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013708 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013710 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013712 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013714 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013716 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013718 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013720 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13721 msm_routing_put_port_mixer),
13722};
13723
Rohit Kumara5077932017-09-10 22:05:05 +053013724static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013725 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13726 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013727 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013729 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13730 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013731 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013733 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13734 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013735 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013737 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13738 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013739 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013741 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13742 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013743 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013745 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13746 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013747 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013749 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13750 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013751 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13752 msm_routing_put_port_mixer),
13753};
13754
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013755static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013756 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13757 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013758 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13759 msm_routing_get_port_mixer,
13760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013761 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13762 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013763 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13764 msm_routing_get_port_mixer,
13765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013766 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013768 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13769 msm_routing_get_port_mixer,
13770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013771 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013773 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13774 msm_routing_get_port_mixer,
13775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013776 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013778 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13779 msm_routing_get_port_mixer,
13780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013781 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13782 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013783 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13784 msm_routing_get_port_mixer,
13785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013786 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013788 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13789 msm_routing_get_port_mixer,
13790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013791 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013793 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13794 msm_routing_get_port_mixer,
13795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013796 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013798 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13799 msm_routing_get_port_mixer,
13800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013801 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13802 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013803 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13804 msm_routing_get_port_mixer,
13805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013806 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013808 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13809 msm_routing_get_port_mixer,
13810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013811 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013813 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13814 msm_routing_get_port_mixer,
13815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013816 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13817 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013818 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13819 msm_routing_get_port_mixer,
13820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013821 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13822 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013823 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13824 msm_routing_get_port_mixer,
13825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013828 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13829 msm_routing_get_port_mixer,
13830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013831 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13832 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013833 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13834 msm_routing_get_port_mixer,
13835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013836 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13837 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013838 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13839 msm_routing_get_port_mixer,
13840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013841 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013843 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13844 msm_routing_get_port_mixer,
13845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013848 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13849 msm_routing_get_port_mixer,
13850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013851 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13852 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013853 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13854 msm_routing_get_port_mixer,
13855 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013856};
13857
13858static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013859 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13860 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013861 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13862 msm_routing_get_port_mixer,
13863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013864 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013866 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13867 msm_routing_get_port_mixer,
13868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013869 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013871 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13872 msm_routing_get_port_mixer,
13873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013874 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013876 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13877 msm_routing_get_port_mixer,
13878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013879 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013881 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13882 msm_routing_get_port_mixer,
13883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013884 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013886 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13887 msm_routing_get_port_mixer,
13888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013889 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13890 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013891 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13892 msm_routing_get_port_mixer,
13893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013894 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13895 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013896 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13897 msm_routing_get_port_mixer,
13898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013899 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013901 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13902 msm_routing_get_port_mixer,
13903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013904 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13905 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013906 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13907 msm_routing_get_port_mixer,
13908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013909 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013911 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13912 msm_routing_get_port_mixer,
13913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013914 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13915 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013916 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13917 msm_routing_get_port_mixer,
13918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013919 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13922 msm_routing_get_port_mixer,
13923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013924 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13925 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013926 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13927 msm_routing_get_port_mixer,
13928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013929 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013931 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13932 msm_routing_get_port_mixer,
13933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013934 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13935 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013936 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13937 msm_routing_get_port_mixer,
13938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013939 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013941 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13942 msm_routing_get_port_mixer,
13943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013944 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013946 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13947 msm_routing_get_port_mixer,
13948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013949 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13950 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013951 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13952 msm_routing_get_port_mixer,
13953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013954 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13955 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013956 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13957 msm_routing_get_port_mixer,
13958 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013959};
13960
13961static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013962 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013964 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13965 msm_routing_get_port_mixer,
13966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013967 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013969 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13970 msm_routing_get_port_mixer,
13971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013972 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013974 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13975 msm_routing_get_port_mixer,
13976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013977 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13978 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013979 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13980 msm_routing_get_port_mixer,
13981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013982 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013984 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13985 msm_routing_get_port_mixer,
13986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013987 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13988 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013989 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13990 msm_routing_get_port_mixer,
13991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013992 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13993 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013994 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13995 msm_routing_get_port_mixer,
13996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013997 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13998 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013999 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14000 msm_routing_get_port_mixer,
14001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014002 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14003 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014004 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14005 msm_routing_get_port_mixer,
14006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014007 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14008 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014009 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14010 msm_routing_get_port_mixer,
14011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14015 msm_routing_get_port_mixer,
14016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014017 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14018 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014019 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14020 msm_routing_get_port_mixer,
14021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014022 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14023 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014024 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14025 msm_routing_get_port_mixer,
14026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014027 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14028 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014029 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14030 msm_routing_get_port_mixer,
14031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14035 msm_routing_get_port_mixer,
14036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014037 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14038 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014039 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14040 msm_routing_get_port_mixer,
14041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014042 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14043 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014044 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14045 msm_routing_get_port_mixer,
14046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014049 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14050 msm_routing_get_port_mixer,
14051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014052 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014054 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14055 msm_routing_get_port_mixer,
14056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014057 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14058 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014059 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14060 msm_routing_get_port_mixer,
14061 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014062};
14063
14064static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014065 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14066 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014067 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14068 msm_routing_get_port_mixer,
14069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014070 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14071 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014072 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14073 msm_routing_get_port_mixer,
14074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014077 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14078 msm_routing_get_port_mixer,
14079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014080 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014082 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14083 msm_routing_get_port_mixer,
14084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014085 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14086 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014087 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14088 msm_routing_get_port_mixer,
14089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014090 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14091 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014092 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14093 msm_routing_get_port_mixer,
14094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014095 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014097 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14098 msm_routing_get_port_mixer,
14099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014100 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14101 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014102 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14103 msm_routing_get_port_mixer,
14104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014105 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14106 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014107 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14108 msm_routing_get_port_mixer,
14109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014110 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014112 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14113 msm_routing_get_port_mixer,
14114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014115 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014117 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14118 msm_routing_get_port_mixer,
14119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014120 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14121 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014122 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14123 msm_routing_get_port_mixer,
14124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014125 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14126 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014127 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14128 msm_routing_get_port_mixer,
14129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014130 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14131 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014132 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14133 msm_routing_get_port_mixer,
14134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014135 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014137 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14138 msm_routing_get_port_mixer,
14139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014140 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14141 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014142 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14143 msm_routing_get_port_mixer,
14144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014145 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14146 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014147 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14148 msm_routing_get_port_mixer,
14149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014150 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014152 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14153 msm_routing_get_port_mixer,
14154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014155 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14156 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014157 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14158 msm_routing_get_port_mixer,
14159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014160 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14161 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014162 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14163 msm_routing_get_port_mixer,
14164 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014165};
14166
14167static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014168 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14169 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014170 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14171 msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014175 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14176 msm_routing_get_port_mixer,
14177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014178 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14179 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014180 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14181 msm_routing_get_port_mixer,
14182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014183 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14184 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014185 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14186 msm_routing_get_port_mixer,
14187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014188 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14189 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014190 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14191 msm_routing_get_port_mixer,
14192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014193 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14194 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014195 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14196 msm_routing_get_port_mixer,
14197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014198 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14199 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014200 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14201 msm_routing_get_port_mixer,
14202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014203 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14204 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014205 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14206 msm_routing_get_port_mixer,
14207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014208 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14209 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014210 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14211 msm_routing_get_port_mixer,
14212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014213 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14214 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014215 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14216 msm_routing_get_port_mixer,
14217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014218 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014220 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14221 msm_routing_get_port_mixer,
14222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014223 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014225 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14226 msm_routing_get_port_mixer,
14227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014228 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14229 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014230 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14231 msm_routing_get_port_mixer,
14232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014233 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14234 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014235 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14236 msm_routing_get_port_mixer,
14237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014240 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14241 msm_routing_get_port_mixer,
14242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014243 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14244 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014245 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14246 msm_routing_get_port_mixer,
14247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014248 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14249 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014250 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14251 msm_routing_get_port_mixer,
14252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014253 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14254 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014255 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14256 msm_routing_get_port_mixer,
14257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014260 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14261 msm_routing_get_port_mixer,
14262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014263 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014265 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14266 msm_routing_get_port_mixer,
14267 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014268};
14269
14270static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014271 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014273 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14274 msm_routing_get_port_mixer,
14275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014276 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14277 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014278 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14279 msm_routing_get_port_mixer,
14280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014281 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14282 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014283 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14284 msm_routing_get_port_mixer,
14285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014286 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14287 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014288 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14289 msm_routing_get_port_mixer,
14290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014291 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14292 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014293 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14294 msm_routing_get_port_mixer,
14295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014296 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14297 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014298 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14299 msm_routing_get_port_mixer,
14300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014301 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14302 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014303 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14304 msm_routing_get_port_mixer,
14305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014306 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14307 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014308 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14309 msm_routing_get_port_mixer,
14310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014311 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14312 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014313 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14314 msm_routing_get_port_mixer,
14315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014316 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014318 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14319 msm_routing_get_port_mixer,
14320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014321 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014323 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14324 msm_routing_get_port_mixer,
14325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014326 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14327 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014328 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14329 msm_routing_get_port_mixer,
14330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014331 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14332 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014333 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14334 msm_routing_get_port_mixer,
14335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014336 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014338 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14339 msm_routing_get_port_mixer,
14340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014341 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14342 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014343 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14344 msm_routing_get_port_mixer,
14345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014346 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14347 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014348 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14349 msm_routing_get_port_mixer,
14350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014351 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14352 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014353 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14354 msm_routing_get_port_mixer,
14355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014356 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14357 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014358 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14359 msm_routing_get_port_mixer,
14360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014361 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14362 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014363 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14364 msm_routing_get_port_mixer,
14365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014366 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14367 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014368 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14369 msm_routing_get_port_mixer,
14370 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014371};
14372
14373static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014376 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14377 msm_routing_get_port_mixer,
14378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014379 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14380 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014381 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14382 msm_routing_get_port_mixer,
14383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014384 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014386 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14387 msm_routing_get_port_mixer,
14388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014389 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14390 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014391 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14392 msm_routing_get_port_mixer,
14393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014394 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14395 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014396 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14397 msm_routing_get_port_mixer,
14398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014399 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14400 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014401 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14402 msm_routing_get_port_mixer,
14403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014404 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14405 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014406 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14407 msm_routing_get_port_mixer,
14408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014409 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14410 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014411 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14412 msm_routing_get_port_mixer,
14413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014414 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14415 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014416 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14417 msm_routing_get_port_mixer,
14418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014419 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14420 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014421 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14422 msm_routing_get_port_mixer,
14423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014424 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14425 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014426 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14427 msm_routing_get_port_mixer,
14428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014429 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014431 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14432 msm_routing_get_port_mixer,
14433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014434 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14435 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014436 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14437 msm_routing_get_port_mixer,
14438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014439 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14440 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014441 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14442 msm_routing_get_port_mixer,
14443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014444 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14445 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014446 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14447 msm_routing_get_port_mixer,
14448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014449 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14450 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014451 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14452 msm_routing_get_port_mixer,
14453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014454 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14455 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014456 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14457 msm_routing_get_port_mixer,
14458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014459 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014461 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14462 msm_routing_get_port_mixer,
14463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014464 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14465 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014466 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14467 msm_routing_get_port_mixer,
14468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014469 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14470 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014471 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14472 msm_routing_get_port_mixer,
14473 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014474};
14475
14476static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014477 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14478 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014479 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14480 msm_routing_get_port_mixer,
14481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014482 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14483 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014484 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14485 msm_routing_get_port_mixer,
14486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014487 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014489 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14490 msm_routing_get_port_mixer,
14491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014492 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14493 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014494 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14495 msm_routing_get_port_mixer,
14496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014497 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14498 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014499 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14500 msm_routing_get_port_mixer,
14501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014502 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14503 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014504 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14505 msm_routing_get_port_mixer,
14506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014507 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014509 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14510 msm_routing_get_port_mixer,
14511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014512 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14513 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014514 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14515 msm_routing_get_port_mixer,
14516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014517 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14518 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014519 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14520 msm_routing_get_port_mixer,
14521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014522 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14523 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014524 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14525 msm_routing_get_port_mixer,
14526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014527 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14528 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014529 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14530 msm_routing_get_port_mixer,
14531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014532 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14533 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014534 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14535 msm_routing_get_port_mixer,
14536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014537 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14538 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014539 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14540 msm_routing_get_port_mixer,
14541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014542 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14543 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014544 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14545 msm_routing_get_port_mixer,
14546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014547 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14548 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014549 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14550 msm_routing_get_port_mixer,
14551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014552 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14553 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014554 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14555 msm_routing_get_port_mixer,
14556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014557 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14558 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014559 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14560 msm_routing_get_port_mixer,
14561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014562 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14563 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014564 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14565 msm_routing_get_port_mixer,
14566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014567 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14568 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014569 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14570 msm_routing_get_port_mixer,
14571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014572 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014574 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14575 msm_routing_get_port_mixer,
14576 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014577};
14578
14579static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014582 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14583 msm_routing_get_port_mixer,
14584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014585 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14586 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014587 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14588 msm_routing_get_port_mixer,
14589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014590 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014592 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14593 msm_routing_get_port_mixer,
14594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014595 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14596 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014597 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14598 msm_routing_get_port_mixer,
14599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014600 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14601 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014602 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14603 msm_routing_get_port_mixer,
14604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014605 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14606 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014607 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14608 msm_routing_get_port_mixer,
14609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014610 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14611 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014612 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14613 msm_routing_get_port_mixer,
14614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014615 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14616 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014617 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14618 msm_routing_get_port_mixer,
14619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014620 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14621 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014622 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14623 msm_routing_get_port_mixer,
14624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014625 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14626 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014627 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14628 msm_routing_get_port_mixer,
14629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014630 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14631 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014632 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14633 msm_routing_get_port_mixer,
14634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014635 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14636 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014637 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14638 msm_routing_get_port_mixer,
14639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014640 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14641 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014642 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14643 msm_routing_get_port_mixer,
14644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014645 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14646 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014647 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14648 msm_routing_get_port_mixer,
14649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014650 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14651 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014652 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14653 msm_routing_get_port_mixer,
14654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014655 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14656 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014657 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14658 msm_routing_get_port_mixer,
14659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014660 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14661 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014662 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14663 msm_routing_get_port_mixer,
14664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014665 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14666 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014667 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14668 msm_routing_get_port_mixer,
14669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014670 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014672 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14673 msm_routing_get_port_mixer,
14674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014675 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14676 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014677 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14678 msm_routing_get_port_mixer,
14679 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014680};
14681
14682static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014683 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14684 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014685 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14686 msm_routing_get_port_mixer,
14687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014688 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14689 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014690 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14691 msm_routing_get_port_mixer,
14692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014693 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014695 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14696 msm_routing_get_port_mixer,
14697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014698 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14699 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014700 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14701 msm_routing_get_port_mixer,
14702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014703 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14704 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014705 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14706 msm_routing_get_port_mixer,
14707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014708 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14709 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014710 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14711 msm_routing_get_port_mixer,
14712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014713 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14714 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014715 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14716 msm_routing_get_port_mixer,
14717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014718 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14719 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014720 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14721 msm_routing_get_port_mixer,
14722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014723 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14724 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014725 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14726 msm_routing_get_port_mixer,
14727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014728 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14729 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014730 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14731 msm_routing_get_port_mixer,
14732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014733 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14734 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014735 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14736 msm_routing_get_port_mixer,
14737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014738 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14739 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014740 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14741 msm_routing_get_port_mixer,
14742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014743 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14744 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014745 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14746 msm_routing_get_port_mixer,
14747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014748 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14749 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014750 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14751 msm_routing_get_port_mixer,
14752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014753 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14754 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014755 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14756 msm_routing_get_port_mixer,
14757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014758 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14759 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014760 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14761 msm_routing_get_port_mixer,
14762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014763 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14764 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014765 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14766 msm_routing_get_port_mixer,
14767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014768 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14769 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014770 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14771 msm_routing_get_port_mixer,
14772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014773 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014775 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14776 msm_routing_get_port_mixer,
14777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014778 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14779 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014780 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14781 msm_routing_get_port_mixer,
14782 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014783};
14784
14785static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014786 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14787 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014788 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14789 msm_routing_get_port_mixer,
14790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014791 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14792 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014793 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14794 msm_routing_get_port_mixer,
14795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014796 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014798 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14799 msm_routing_get_port_mixer,
14800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014801 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014803 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14804 msm_routing_get_port_mixer,
14805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014806 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14807 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014808 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14809 msm_routing_get_port_mixer,
14810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014811 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14812 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014813 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14814 msm_routing_get_port_mixer,
14815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014816 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14817 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014818 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14819 msm_routing_get_port_mixer,
14820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014821 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14822 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014823 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14824 msm_routing_get_port_mixer,
14825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014826 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14827 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014828 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14829 msm_routing_get_port_mixer,
14830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014831 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14832 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014833 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14834 msm_routing_get_port_mixer,
14835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014836 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14837 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014838 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14839 msm_routing_get_port_mixer,
14840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014841 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014843 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14844 msm_routing_get_port_mixer,
14845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014846 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14847 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014848 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14849 msm_routing_get_port_mixer,
14850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014851 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14852 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014853 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14854 msm_routing_get_port_mixer,
14855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014856 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14857 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014858 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14859 msm_routing_get_port_mixer,
14860 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014861 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14862 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014863 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14864 msm_routing_get_port_mixer,
14865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014866 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14867 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014868 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14869 msm_routing_get_port_mixer,
14870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014871 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14872 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014873 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14874 msm_routing_get_port_mixer,
14875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014876 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14877 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014878 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14879 msm_routing_get_port_mixer,
14880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014881 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14882 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014883 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14884 msm_routing_get_port_mixer,
14885 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014886};
14887
14888static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014889 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14890 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014891 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14892 msm_routing_get_port_mixer,
14893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014894 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14895 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014896 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14897 msm_routing_get_port_mixer,
14898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014899 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14900 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014901 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14902 msm_routing_get_port_mixer,
14903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014904 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14905 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014906 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14907 msm_routing_get_port_mixer,
14908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014909 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14910 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014911 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14912 msm_routing_get_port_mixer,
14913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014914 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14915 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014916 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14917 msm_routing_get_port_mixer,
14918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014919 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14920 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014921 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14922 msm_routing_get_port_mixer,
14923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014924 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14925 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014926 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14927 msm_routing_get_port_mixer,
14928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014929 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14930 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014931 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14932 msm_routing_get_port_mixer,
14933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014934 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14935 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014936 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14937 msm_routing_get_port_mixer,
14938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014939 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14940 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014941 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14942 msm_routing_get_port_mixer,
14943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014944 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14945 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014946 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14947 msm_routing_get_port_mixer,
14948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014949 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14950 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014951 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14952 msm_routing_get_port_mixer,
14953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014954 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14955 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014956 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14957 msm_routing_get_port_mixer,
14958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014959 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14960 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014961 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14962 msm_routing_get_port_mixer,
14963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014964 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14965 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014966 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14967 msm_routing_get_port_mixer,
14968 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014969 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14970 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014971 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14972 msm_routing_get_port_mixer,
14973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014974 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14975 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014976 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14977 msm_routing_get_port_mixer,
14978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014979 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14980 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014981 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14982 msm_routing_get_port_mixer,
14983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014984 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014986 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14987 msm_routing_get_port_mixer,
14988 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014989};
14990
14991static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014992 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014994 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14995 msm_routing_get_port_mixer,
14996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014997 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14998 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014999 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15000 msm_routing_get_port_mixer,
15001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015002 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15003 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015004 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15005 msm_routing_get_port_mixer,
15006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015007 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15008 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015009 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15010 msm_routing_get_port_mixer,
15011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015012 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15013 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015014 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15015 msm_routing_get_port_mixer,
15016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015017 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15018 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015019 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15020 msm_routing_get_port_mixer,
15021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015022 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15023 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015024 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15025 msm_routing_get_port_mixer,
15026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015027 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15028 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015029 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15030 msm_routing_get_port_mixer,
15031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015032 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15033 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015034 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15035 msm_routing_get_port_mixer,
15036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015037 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15038 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015039 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15040 msm_routing_get_port_mixer,
15041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015042 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15043 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015044 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15045 msm_routing_get_port_mixer,
15046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015047 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015049 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15050 msm_routing_get_port_mixer,
15051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015052 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15053 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015054 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15055 msm_routing_get_port_mixer,
15056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015057 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15058 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015059 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15060 msm_routing_get_port_mixer,
15061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015062 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15063 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015064 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15065 msm_routing_get_port_mixer,
15066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015067 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15068 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015069 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15070 msm_routing_get_port_mixer,
15071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015072 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15073 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015074 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15075 msm_routing_get_port_mixer,
15076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015077 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15078 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015079 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15080 msm_routing_get_port_mixer,
15081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015082 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15083 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015084 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15085 msm_routing_get_port_mixer,
15086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015087 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015089 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15090 msm_routing_get_port_mixer,
15091 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015092};
15093
15094static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015095 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015097 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15098 msm_routing_get_port_mixer,
15099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015100 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15101 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015102 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15103 msm_routing_get_port_mixer,
15104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015105 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15106 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015107 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15108 msm_routing_get_port_mixer,
15109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015110 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15111 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015112 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15113 msm_routing_get_port_mixer,
15114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015115 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15116 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015117 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15118 msm_routing_get_port_mixer,
15119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015120 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15121 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015122 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15123 msm_routing_get_port_mixer,
15124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015125 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15126 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015127 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15128 msm_routing_get_port_mixer,
15129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015130 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15131 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015132 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15133 msm_routing_get_port_mixer,
15134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015135 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15136 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015137 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15138 msm_routing_get_port_mixer,
15139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015140 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15141 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015142 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15143 msm_routing_get_port_mixer,
15144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015145 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15146 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015147 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15148 msm_routing_get_port_mixer,
15149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015150 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15151 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015152 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15153 msm_routing_get_port_mixer,
15154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015155 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15156 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015157 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15158 msm_routing_get_port_mixer,
15159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015160 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15161 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015162 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15163 msm_routing_get_port_mixer,
15164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015165 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15166 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015167 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15168 msm_routing_get_port_mixer,
15169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015170 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15171 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015172 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15173 msm_routing_get_port_mixer,
15174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015175 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15176 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015177 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15178 msm_routing_get_port_mixer,
15179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015180 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15181 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015182 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15183 msm_routing_get_port_mixer,
15184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015185 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15186 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015187 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15188 msm_routing_get_port_mixer,
15189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015190 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015192 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15193 msm_routing_get_port_mixer,
15194 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015195};
15196
15197static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015198 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015200 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15201 msm_routing_get_port_mixer,
15202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015203 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15204 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015205 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15206 msm_routing_get_port_mixer,
15207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015208 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15209 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015210 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15211 msm_routing_get_port_mixer,
15212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015213 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015215 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15216 msm_routing_get_port_mixer,
15217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015218 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15219 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015220 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15221 msm_routing_get_port_mixer,
15222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015223 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15224 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015225 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15226 msm_routing_get_port_mixer,
15227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015228 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15229 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015230 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15231 msm_routing_get_port_mixer,
15232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015233 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15234 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015235 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15236 msm_routing_get_port_mixer,
15237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015238 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15239 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015240 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15241 msm_routing_get_port_mixer,
15242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015243 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15244 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015245 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15246 msm_routing_get_port_mixer,
15247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015248 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15249 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015250 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15251 msm_routing_get_port_mixer,
15252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015253 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15254 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015255 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15256 msm_routing_get_port_mixer,
15257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015258 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15259 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015260 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15261 msm_routing_get_port_mixer,
15262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015263 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15264 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015265 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15266 msm_routing_get_port_mixer,
15267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015268 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15269 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015270 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15271 msm_routing_get_port_mixer,
15272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015273 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15274 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015275 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15276 msm_routing_get_port_mixer,
15277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015278 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15279 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015280 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15281 msm_routing_get_port_mixer,
15282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015283 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15284 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015285 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15286 msm_routing_get_port_mixer,
15287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015288 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15289 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015290 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15291 msm_routing_get_port_mixer,
15292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015293 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15294 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015295 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15296 msm_routing_get_port_mixer,
15297 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015298};
15299
15300static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015301 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015303 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15304 msm_routing_get_port_mixer,
15305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015306 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15307 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015308 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15309 msm_routing_get_port_mixer,
15310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015311 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15312 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015313 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15314 msm_routing_get_port_mixer,
15315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015316 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15317 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015318 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15319 msm_routing_get_port_mixer,
15320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015321 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15322 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015323 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15324 msm_routing_get_port_mixer,
15325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015326 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15327 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015328 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15329 msm_routing_get_port_mixer,
15330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015331 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15332 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015333 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15334 msm_routing_get_port_mixer,
15335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015336 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15337 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015338 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15339 msm_routing_get_port_mixer,
15340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015341 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15342 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015343 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15344 msm_routing_get_port_mixer,
15345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015346 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15347 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015348 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15349 msm_routing_get_port_mixer,
15350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015351 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15352 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015353 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15354 msm_routing_get_port_mixer,
15355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015356 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15357 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015358 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15359 msm_routing_get_port_mixer,
15360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015361 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15362 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015363 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15364 msm_routing_get_port_mixer,
15365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015366 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15367 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015368 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15369 msm_routing_get_port_mixer,
15370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015371 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15372 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015373 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15374 msm_routing_get_port_mixer,
15375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015376 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15377 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015378 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15379 msm_routing_get_port_mixer,
15380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015381 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15382 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015383 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15384 msm_routing_get_port_mixer,
15385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015386 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15387 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015388 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15389 msm_routing_get_port_mixer,
15390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015391 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15392 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015393 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15394 msm_routing_get_port_mixer,
15395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015396 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15397 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015398 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15399 msm_routing_get_port_mixer,
15400 msm_routing_put_port_mixer),
15401};
15402
15403static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015404 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15405 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015406 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15407 msm_routing_get_port_mixer,
15408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015409 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015411 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15412 msm_routing_get_port_mixer,
15413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015414 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15415 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015416 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15417 msm_routing_get_port_mixer,
15418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015419 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15420 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015421 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15422 msm_routing_get_port_mixer,
15423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015424 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15425 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015426 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15427 msm_routing_get_port_mixer,
15428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015429 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15430 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015431 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15432 msm_routing_get_port_mixer,
15433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015434 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15435 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015436 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15437 msm_routing_get_port_mixer,
15438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015439 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15440 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015441 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15442 msm_routing_get_port_mixer,
15443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015444 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15445 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015446 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15447 msm_routing_get_port_mixer,
15448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015449 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15450 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015451 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15452 msm_routing_get_port_mixer,
15453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015454 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15455 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015456 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15457 msm_routing_get_port_mixer,
15458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015459 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15460 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015461 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15462 msm_routing_get_port_mixer,
15463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015464 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15465 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015466 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15467 msm_routing_get_port_mixer,
15468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015469 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15470 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015471 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15472 msm_routing_get_port_mixer,
15473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015474 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15475 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015476 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15477 msm_routing_get_port_mixer,
15478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015479 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15480 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015481 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15482 msm_routing_get_port_mixer,
15483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015484 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15485 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015486 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15487 msm_routing_get_port_mixer,
15488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015489 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15490 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015491 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15492 msm_routing_get_port_mixer,
15493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015494 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015496 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15497 msm_routing_get_port_mixer,
15498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015499 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15500 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015501 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15502 msm_routing_get_port_mixer,
15503 msm_routing_put_port_mixer),
15504};
15505
15506static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015507 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15508 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015509 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15510 msm_routing_get_port_mixer,
15511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015512 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15513 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015514 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15515 msm_routing_get_port_mixer,
15516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015517 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15518 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015519 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15520 msm_routing_get_port_mixer,
15521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015522 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15523 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015524 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15525 msm_routing_get_port_mixer,
15526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015527 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15528 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015529 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15530 msm_routing_get_port_mixer,
15531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015532 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15533 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015534 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15535 msm_routing_get_port_mixer,
15536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015537 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15538 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015539 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15540 msm_routing_get_port_mixer,
15541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015542 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15543 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015544 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15545 msm_routing_get_port_mixer,
15546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015547 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15548 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015549 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15550 msm_routing_get_port_mixer,
15551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015552 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15553 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015554 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15555 msm_routing_get_port_mixer,
15556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015557 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15558 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015559 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15560 msm_routing_get_port_mixer,
15561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015562 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15563 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015564 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15565 msm_routing_get_port_mixer,
15566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015567 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15568 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015569 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15570 msm_routing_get_port_mixer,
15571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015572 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15573 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015574 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15575 msm_routing_get_port_mixer,
15576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015577 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15578 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015579 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15580 msm_routing_get_port_mixer,
15581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015582 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15583 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015584 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15585 msm_routing_get_port_mixer,
15586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015587 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15588 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015589 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15590 msm_routing_get_port_mixer,
15591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015592 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15593 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015594 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15595 msm_routing_get_port_mixer,
15596 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015597 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15598 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015599 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15600 msm_routing_get_port_mixer,
15601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015602 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15603 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015604 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15605 msm_routing_get_port_mixer,
15606 msm_routing_put_port_mixer),
15607};
15608
15609static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015610 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15611 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015612 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15613 msm_routing_get_port_mixer,
15614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015617 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15618 msm_routing_get_port_mixer,
15619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015620 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15621 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015622 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15623 msm_routing_get_port_mixer,
15624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015625 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15626 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015627 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15628 msm_routing_get_port_mixer,
15629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015630 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15631 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015632 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15633 msm_routing_get_port_mixer,
15634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015635 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15636 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015637 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15638 msm_routing_get_port_mixer,
15639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015640 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15641 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015642 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15643 msm_routing_get_port_mixer,
15644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015645 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15646 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015647 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15648 msm_routing_get_port_mixer,
15649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015650 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15651 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015652 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15653 msm_routing_get_port_mixer,
15654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015655 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15656 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015657 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15658 msm_routing_get_port_mixer,
15659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015660 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15661 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015662 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15663 msm_routing_get_port_mixer,
15664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015665 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15666 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015667 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15668 msm_routing_get_port_mixer,
15669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015670 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15671 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015672 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15673 msm_routing_get_port_mixer,
15674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015675 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15676 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015677 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15678 msm_routing_get_port_mixer,
15679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015680 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15681 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015682 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15683 msm_routing_get_port_mixer,
15684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015685 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15686 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015687 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15688 msm_routing_get_port_mixer,
15689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015690 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15691 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015692 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15693 msm_routing_get_port_mixer,
15694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015695 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15696 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015697 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15698 msm_routing_get_port_mixer,
15699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015700 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15701 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015702 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15703 msm_routing_get_port_mixer,
15704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015705 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15706 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015707 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15708 msm_routing_get_port_mixer,
15709 msm_routing_put_port_mixer),
15710};
15711
15712static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015713 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15714 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015715 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15716 msm_routing_get_port_mixer,
15717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015718 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15719 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015720 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15721 msm_routing_get_port_mixer,
15722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015723 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15724 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015725 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15726 msm_routing_get_port_mixer,
15727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015728 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15729 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015730 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15731 msm_routing_get_port_mixer,
15732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015733 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15734 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015735 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15736 msm_routing_get_port_mixer,
15737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015738 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15739 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015740 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15741 msm_routing_get_port_mixer,
15742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015743 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15744 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015745 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15746 msm_routing_get_port_mixer,
15747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015748 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15749 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015750 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15751 msm_routing_get_port_mixer,
15752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015753 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15754 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015755 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15756 msm_routing_get_port_mixer,
15757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015758 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15759 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015760 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15761 msm_routing_get_port_mixer,
15762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015763 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15764 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015765 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15766 msm_routing_get_port_mixer,
15767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015768 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15769 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015770 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15771 msm_routing_get_port_mixer,
15772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015773 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15774 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015775 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15776 msm_routing_get_port_mixer,
15777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015778 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15779 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015780 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15781 msm_routing_get_port_mixer,
15782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015783 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15784 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015785 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15786 msm_routing_get_port_mixer,
15787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015788 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15789 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015790 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15791 msm_routing_get_port_mixer,
15792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015793 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15794 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015795 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15796 msm_routing_get_port_mixer,
15797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015798 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15799 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015800 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15801 msm_routing_get_port_mixer,
15802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015803 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15804 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015805 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15806 msm_routing_get_port_mixer,
15807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015808 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15809 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015810 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15811 msm_routing_get_port_mixer,
15812 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015813};
15814
15815static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015816 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15817 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015818 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015820 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15821 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015822 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015824 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15825 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015826 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015828 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15829 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015830 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015832 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15833 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015834 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015836 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15837 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015838 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015840 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015842 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15843 msm_routing_put_port_mixer),
15844};
15845
15846static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015847 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015849 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015851 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15852 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015853 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015855 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015857 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015859 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15860 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015861 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015863 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015865 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015867 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015869 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015871 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15872 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015873 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015875 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15876 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015877 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015879 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15880 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015881 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15882 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015883};
15884
15885static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015886 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15887 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015888 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15889 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015890 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015892 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15893 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015894 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15895 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015896 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15897 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015898 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015900 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15901 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015904 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15905 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015906 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15907 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015908 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15909 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015910 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15911 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015912 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15913 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015914 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15915 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015916 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15917 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053015918 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15920 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15921 msm_routing_put_listen_mixer),
15922 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15924 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15925 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015926};
15927
15928static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015929 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15930 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015931 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15932 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015933 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
15934 SND_SOC_NOPM,
15935 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015936 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15937 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015938 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15939 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015940 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15941 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015942 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15943 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015944 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15945 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015946 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15947 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015948 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15949 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015950 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15951 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015952 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15953 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015954 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15955 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015956 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15957 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015958 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15959 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015960 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15961 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053015962 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15963 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15964 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15965 msm_routing_put_listen_mixer),
15966 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15967 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15968 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15969 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015970};
15971
15972static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015973 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15974 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015975 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15976 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015977 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
15978 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015979 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15980 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015981 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15982 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015983 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15984 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015985 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015987 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15988 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015989 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15990 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015991 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15992 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015993 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015995 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15996 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015997 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15998 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015999 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16000 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016001 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016003 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16004 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016005 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16007 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16008 msm_routing_put_listen_mixer),
16009 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16010 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16011 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16012 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016013};
16014
16015static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016016 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16017 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016018 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16019 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016020 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016022 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16023 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016024 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016026 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16027 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016028 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016030 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16031 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016032 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16033 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016034 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16035 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016036 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16037 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016038 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16039 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016040 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16041 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016042 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16043 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016044 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16045 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016046 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16047 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016048 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16050 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16051 msm_routing_put_listen_mixer),
16052 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16053 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16054 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16055 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016056};
16057
16058static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016059 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16060 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016061 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16062 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016063 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016065 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16066 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016067 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16068 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016069 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16070 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016071 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16072 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016073 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16074 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016075 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16076 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016077 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16078 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016079 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16080 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016081 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16082 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016083 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016085 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16086 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016087 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16088 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016089 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16090 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016091 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16092 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16093 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16094 msm_routing_put_listen_mixer),
16095 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16096 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16097 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16098 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016099};
16100
16101static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016102 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16103 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016104 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16105 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016106 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016108 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16109 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016110 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16111 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016112 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16113 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016114 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016116 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16117 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016120 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16121 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016122 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16123 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016124 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16125 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16127 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016128 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16129 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016130 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16131 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016132 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16133 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016134 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16135 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16136 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16137 msm_routing_put_listen_mixer),
16138 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16139 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16140 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16141 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016142};
16143
16144static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016145 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16146 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016147 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16148 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016149 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16150 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016151 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16152 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016153 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16154 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016155 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16156 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016157 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16158 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016159 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16160 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016163 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16164 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016165 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16166 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016167 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16168 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016169 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16170 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016171 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16172 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016173 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16174 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016175 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16176 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016177 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16179 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16180 msm_routing_put_listen_mixer),
16181 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16183 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16184 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016185};
16186
16187static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016188 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16189 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016190 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16191 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016192 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16193 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016194 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16195 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016198 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16199 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016200 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16201 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016202 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16203 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016206 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16207 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016208 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16209 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016210 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16211 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016212 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016214 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16215 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016218 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16219 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016220 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16221 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16222 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16223 msm_routing_put_listen_mixer),
16224 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16225 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16226 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16227 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016228};
16229
16230static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16231 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16232 0, 1, 0, msm_routing_get_switch_mixer,
16233 msm_routing_put_switch_mixer);
16234
16235static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16236 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16237 0, 1, 0, msm_routing_get_switch_mixer,
16238 msm_routing_put_switch_mixer);
16239
16240static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16241 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16242 0, 1, 0, msm_routing_get_switch_mixer,
16243 msm_routing_put_switch_mixer);
16244
16245static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16246 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16247 0, 1, 0, msm_routing_get_switch_mixer,
16248 msm_routing_put_switch_mixer);
16249
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016250static const struct snd_kcontrol_new cdc_dma_fm_switch_mixer_controls =
16251 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16252 0, 1, 0, msm_routing_get_switch_mixer,
16253 msm_routing_put_switch_mixer);
16254
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016255static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16256 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16257 0, 1, 0, msm_routing_get_switch_mixer,
16258 msm_routing_put_switch_mixer);
16259
16260static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16261 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16262 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16263 msm_routing_put_fm_pcmrx_switch_mixer);
16264
16265static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16266 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16267 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16268 msm_routing_put_int0_mi2s_switch_mixer);
16269
16270static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16271 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16272 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16273 msm_routing_put_int4_mi2s_switch_mixer);
16274
16275static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16276 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16277 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16278 msm_routing_put_pri_mi2s_switch_mixer);
16279
16280static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16281 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16282 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16283 msm_routing_put_sec_mi2s_switch_mixer);
16284
16285static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16286 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16287 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16288 msm_routing_put_tert_mi2s_switch_mixer);
16289
16290static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16291 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16292 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16293 msm_routing_put_quat_mi2s_switch_mixer);
16294
Rohit Kumara5077932017-09-10 22:05:05 +053016295static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16296 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16297 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16298 msm_routing_put_quin_mi2s_switch_mixer);
16299
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016300static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16301 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16302 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16303 msm_routing_put_hfp_switch_mixer);
16304
16305static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16306 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16307 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16308 msm_routing_put_hfp_switch_mixer);
16309
16310static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16311 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16312 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16313 msm_routing_put_hfp_switch_mixer);
16314
16315static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16316 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16317 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16318 msm_routing_put_hfp_switch_mixer);
16319
16320static const struct snd_kcontrol_new usb_switch_mixer_controls =
16321 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16322 0, 1, 0, msm_routing_get_usb_switch_mixer,
16323 msm_routing_put_usb_switch_mixer);
16324
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016325static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16326 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16327 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16328 msm_routing_a2dp_switch_mixer_put);
16329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016330static const struct soc_enum lsm_port_enum =
16331 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16332
16333static const char * const lsm_func_text[] = {
16334 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16335};
16336static const struct soc_enum lsm_func_enum =
16337 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16338
16339static const struct snd_kcontrol_new lsm_controls[] = {
16340 /* kcontrol of lsm_function */
16341 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16342 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16343 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16344 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16345 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16346 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16347 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16348 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16349 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16350 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16351 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16352 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16353 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16354 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16355 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16356 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16357 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16358 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16359 /* kcontrol of lsm_port */
16360 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16361 msm_routing_lsm_port_get,
16362 msm_routing_lsm_port_put),
16363 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16364 msm_routing_lsm_port_get,
16365 msm_routing_lsm_port_put),
16366 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16367 msm_routing_lsm_port_get,
16368 msm_routing_lsm_port_put),
16369 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16370 msm_routing_lsm_port_get,
16371 msm_routing_lsm_port_put),
16372 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16373 msm_routing_lsm_port_get,
16374 msm_routing_lsm_port_put),
16375 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16376 msm_routing_lsm_port_get,
16377 msm_routing_lsm_port_put),
16378 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16379 msm_routing_lsm_port_get,
16380 msm_routing_lsm_port_put),
16381 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16382 msm_routing_lsm_port_get,
16383 msm_routing_lsm_port_put),
16384};
16385
16386static const char * const aanc_slim_0_rx_text[] = {
16387 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16388 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16389};
16390
16391static const struct soc_enum aanc_slim_0_rx_enum =
16392 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16393 aanc_slim_0_rx_text);
16394
16395static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16396 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16397 msm_routing_slim_0_rx_aanc_mux_get,
16398 msm_routing_slim_0_rx_aanc_mux_put)
16399};
16400
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016401static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16402 struct snd_ctl_elem_value *ucontrol)
16403{
16404 ucontrol->value.integer.value[0] = aanc_level;
16405
16406 return 0;
16407}
16408
16409static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16410 struct snd_ctl_elem_value *ucontrol)
16411{
16412 int ret = 0;
16413
16414 mutex_lock(&routing_lock);
16415 aanc_level = ucontrol->value.integer.value[0];
16416 pr_debug("%s: value: %ld\n",
16417 __func__, ucontrol->value.integer.value[0]);
16418 ret = afe_set_aanc_noise_level(aanc_level);
16419 mutex_unlock(&routing_lock);
16420
16421 return ret;
16422}
16423
16424static const struct snd_kcontrol_new aanc_noise_level[] = {
16425 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16426 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16427};
16428
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016429static int msm_routing_get_stereo_to_custom_stereo_control(
16430 struct snd_kcontrol *kcontrol,
16431 struct snd_ctl_elem_value *ucontrol)
16432{
16433 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16434 return 0;
16435}
16436
16437static int msm_routing_put_stereo_to_custom_stereo_control(
16438 struct snd_kcontrol *kcontrol,
16439 struct snd_ctl_elem_value *ucontrol)
16440{
16441 int flag = 0, i = 0, rc = 0, idx = 0;
16442 int be_index = 0, port_id, topo_id;
16443 unsigned int session_id = 0;
16444 uint16_t op_FL_ip_FL_weight = 0;
16445 uint16_t op_FL_ip_FR_weight = 0;
16446 uint16_t op_FR_ip_FL_weight = 0;
16447 uint16_t op_FR_ip_FR_weight = 0;
16448
16449 flag = ucontrol->value.integer.value[0];
16450 pr_debug("%s E flag %d\n", __func__, flag);
16451
16452 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16453 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16454 __func__, is_custom_stereo_on, flag);
16455 return 0;
16456 }
16457 is_custom_stereo_on = flag ? true : false;
16458 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16459 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16460 port_id = msm_bedais[be_index].port_id;
16461 if (!msm_bedais[be_index].active)
16462 continue;
16463 if ((port_id != SLIMBUS_0_RX) &&
16464 (port_id != RT_PROXY_PORT_001_RX) &&
16465 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16466 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16467 continue;
16468
16469 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16470 MSM_FRONTEND_DAI_MM_SIZE) {
16471 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16472 LEGACY_PCM_MODE)
16473 goto skip_send_custom_stereo;
16474 session_id =
16475 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16476 if (is_custom_stereo_on) {
16477 op_FL_ip_FL_weight =
16478 Q14_GAIN_ZERO_POINT_FIVE;
16479 op_FL_ip_FR_weight =
16480 Q14_GAIN_ZERO_POINT_FIVE;
16481 op_FR_ip_FL_weight =
16482 Q14_GAIN_ZERO_POINT_FIVE;
16483 op_FR_ip_FR_weight =
16484 Q14_GAIN_ZERO_POINT_FIVE;
16485 } else {
16486 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16487 op_FL_ip_FR_weight = 0;
16488 op_FR_ip_FL_weight = 0;
16489 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16490 }
16491 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16492 unsigned long copp =
16493 session_copp_map[i]
16494 [SESSION_TYPE_RX][be_index];
16495 if (!test_bit(idx, &copp))
16496 goto skip_send_custom_stereo;
16497 topo_id = adm_get_topology_for_port_copp_idx(
16498 msm_bedais[be_index].port_id, idx);
16499 if (topo_id < 0)
16500 pr_debug("%s:Err:custom stereo topo %d",
16501 __func__, topo_id);
16502 pr_debug("idx %d\n", idx);
16503 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
16504 rc = msm_ds2_dap_set_custom_stereo_onoff
16505 (msm_bedais[be_index].port_id,
16506 idx, is_custom_stereo_on);
16507 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
16508 rc = dolby_dap_set_custom_stereo_onoff(
16509 msm_bedais[be_index].port_id,
16510 idx, is_custom_stereo_on);
16511 else
16512 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
16513 (msm_bedais[be_index].port_id,
16514 idx, session_id,
16515 op_FL_ip_FL_weight,
16516 op_FL_ip_FR_weight,
16517 op_FR_ip_FL_weight,
16518 op_FR_ip_FR_weight);
16519 if (rc < 0)
16520skip_send_custom_stereo:
16521 pr_err("%s: err setting custom stereo\n",
16522 __func__);
16523 }
16524
16525 }
16526 }
16527 return 0;
16528}
16529
16530static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
16531 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
16532 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
16533 msm_routing_put_stereo_to_custom_stereo_control),
16534};
16535
16536static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16537 struct snd_ctl_elem_value *ucontrol)
16538{
16539 return 0;
16540}
16541
16542static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16543 struct snd_ctl_elem_value *ucontrol)
16544{
16545 int i = 0, j;
16546 int num_app_types = ucontrol->value.integer.value[i++];
16547
16548 pr_debug("%s\n", __func__);
16549
16550 memset(app_type_cfg, 0, MAX_APP_TYPES*
16551 sizeof(struct msm_pcm_routing_app_type_data));
16552 if (num_app_types > MAX_APP_TYPES) {
16553 pr_err("%s: number of app types exceed the max supported\n",
16554 __func__);
16555 return -EINVAL;
16556 }
16557 for (j = 0; j < num_app_types; j++) {
16558 app_type_cfg[j].app_type =
16559 ucontrol->value.integer.value[i++];
16560 app_type_cfg[j].sample_rate =
16561 ucontrol->value.integer.value[i++];
16562 app_type_cfg[j].bit_width =
16563 ucontrol->value.integer.value[i++];
16564 }
16565
16566 return 0;
16567}
16568
16569static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
16570 struct snd_ctl_elem_value *ucontrol)
16571{
16572 int j, fe_id, be_id, port_type;
16573 int ret = 0;
16574 unsigned long copp;
16575 struct msm_pcm_routing_bdai_data *bedai;
16576 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16577 SESSION_TYPE_RX;
16578 int app_type = ucontrol->value.integer.value[1];
16579 int gain = (ucontrol->value.integer.value[2] +
16580 ucontrol->value.integer.value[3])/2;
16581
16582 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16583 MSM_AFE_PORT_TYPE_TX;
16584
16585 mutex_lock(&routing_lock);
16586 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16587 if (is_be_dai_extproc(be_id))
16588 continue;
16589
16590 bedai = &msm_bedais[be_id];
16591 if (afe_get_port_type(bedai->port_id) != port_type)
16592 continue;
16593
16594 if (!bedai->active)
16595 continue;
16596
16597 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16598 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16599 continue;
16600
16601 if (app_type !=
16602 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16603 continue;
16604
16605 copp = session_copp_map[fe_id][dir][be_id];
16606 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
16607 if (!test_bit(j, &copp))
16608 continue;
16609 ret |= adm_set_volume(bedai->port_id, j, gain);
16610 }
16611 }
16612 }
16613 mutex_unlock(&routing_lock);
16614 return ret ? -EINVAL : 0;
16615}
16616
16617static const struct snd_kcontrol_new app_type_cfg_controls[] = {
16618 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
16619 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
16620 msm_routing_put_app_type_cfg_control),
16621 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
16622 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
16623};
16624
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016625static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
16626 struct snd_ctl_elem_value *ucontrol)
16627{
16628 int copp_idx, fe_id, be_id, port_type;
16629 int ret = 0;
16630 unsigned long copp;
16631 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016632 u8 *packed_params = NULL;
16633 struct param_hdr_v3 param_hdr;
16634 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
16635 sizeof(uint32_t));
16636
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016637 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16638 SESSION_TYPE_RX;
16639 int app_type = ucontrol->value.integer.value[1];
16640 int module_id = ucontrol->value.integer.value[2];
16641 int instance_id = ucontrol->value.integer.value[3];
16642 int param_id = ucontrol->value.integer.value[4];
16643 int param_value = ucontrol->value.integer.value[5];
16644
16645 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16646 MSM_AFE_PORT_TYPE_TX;
16647 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
16648 __func__, app_type, module_id,
16649 instance_id, param_id, param_value);
16650
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016651 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
16652 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016653 return -ENOMEM;
16654
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016655 memset(&param_hdr, 0, sizeof(param_hdr));
16656 param_hdr.module_id = module_id;
16657 param_hdr.instance_id = instance_id;
16658 param_hdr.param_id = param_id;
16659 param_hdr.param_size = sizeof(uint32_t);
16660
16661 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016662
16663 mutex_lock(&routing_lock);
16664 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16665 if (is_be_dai_extproc(be_id))
16666 continue;
16667
16668 bedai = &msm_bedais[be_id];
16669 if (afe_get_port_type(bedai->port_id) != port_type)
16670 continue;
16671
16672 if (!bedai->active)
16673 continue;
16674
16675 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16676 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16677 continue;
16678
16679 if (app_type !=
16680 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16681 continue;
16682
16683 copp = session_copp_map[fe_id][dir][be_id];
16684 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
16685 copp_idx++) {
16686 if (!test_bit(copp_idx, &copp))
16687 continue;
16688
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016689 ret = q6common_pack_pp_params(packed_params,
16690 &param_hdr,
16691 (u8 *) &param_value,
16692 &packed_param_size);
16693 if (ret) {
16694 pr_err("%s: Failed to pack params, error %d\n",
16695 __func__, ret);
16696 goto done;
16697 }
16698
16699 ret = adm_set_pp_params(bedai->port_id,
16700 copp_idx, NULL,
16701 packed_params,
16702 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016703 if (ret) {
16704 pr_err("%s: Setting param failed with err=%d\n",
16705 __func__, ret);
16706 ret = -EINVAL;
16707 goto done;
16708 }
16709 }
16710 }
16711 }
16712done:
16713 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016714 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016715 return ret;
16716}
16717
16718static const struct snd_kcontrol_new module_cfg_controls[] = {
16719 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
16720 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
16721};
16722
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016723static int msm_routing_get_lsm_app_type_cfg_control(
16724 struct snd_kcontrol *kcontrol,
16725 struct snd_ctl_elem_value *ucontrol)
16726{
16727 return 0;
16728}
16729
16730static int msm_routing_put_lsm_app_type_cfg_control(
16731 struct snd_kcontrol *kcontrol,
16732 struct snd_ctl_elem_value *ucontrol)
16733{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016734 int shift = ((struct soc_multi_mixer_control *)
16735 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016736 int i = 0, j;
16737 int num_app_types = ucontrol->value.integer.value[i++];
16738
16739 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016740 sizeof(struct msm_pcm_routing_app_type_data));
16741
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016742 if (num_app_types > MAX_APP_TYPES) {
16743 pr_err("%s: number of app types exceed the max supported\n",
16744 __func__);
16745 return -EINVAL;
16746 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016747
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016748 for (j = 0; j < num_app_types; j++) {
16749 lsm_app_type_cfg[j].app_type =
16750 ucontrol->value.integer.value[i++];
16751 lsm_app_type_cfg[j].sample_rate =
16752 ucontrol->value.integer.value[i++];
16753 lsm_app_type_cfg[j].bit_width =
16754 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016755 /* Shift of 1 indicates this is V2 mixer control */
16756 if (shift == 1)
16757 lsm_app_type_cfg[j].num_out_channels =
16758 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016759 }
16760
16761 return 0;
16762}
16763
16764static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
16765 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
16766 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16767 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016768 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
16769 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16770 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016771};
16772
16773static int msm_routing_get_use_ds1_or_ds2_control(
16774 struct snd_kcontrol *kcontrol,
16775 struct snd_ctl_elem_value *ucontrol)
16776{
16777 ucontrol->value.integer.value[0] = is_ds2_on;
16778 return 0;
16779}
16780
16781static int msm_routing_put_use_ds1_or_ds2_control(
16782 struct snd_kcontrol *kcontrol,
16783 struct snd_ctl_elem_value *ucontrol)
16784{
16785 is_ds2_on = ucontrol->value.integer.value[0];
16786 return 0;
16787}
16788
16789static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
16790 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
16791 1, 0, msm_routing_get_use_ds1_or_ds2_control,
16792 msm_routing_put_use_ds1_or_ds2_control),
16793};
16794
16795int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
16796 struct snd_ctl_elem_value *ucontrol) {
16797 int rc = 0;
16798 int be_idx = 0;
16799 char *param_value;
16800 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016801 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
16802 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016803
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016804 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016805 if (!param_value)
16806 return -ENOMEM;
16807
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016808 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016809 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
16810 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
16811 break;
16812 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016813 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
16814 param_hdr.instance_id = INSTANCE_ID_0;
16815 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
16816 param_hdr.param_size = param_size;
16817 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
16818 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016819 if (rc) {
16820 pr_err("%s: get parameters failed:%d\n", __func__, rc);
16821 kfree(param_value);
16822 return -EINVAL;
16823 }
16824 update_param_value = (int *)param_value;
16825 ucontrol->value.integer.value[0] = update_param_value[0];
16826
16827 pr_debug("%s: FROM DSP value[0] 0x%x\n",
16828 __func__, update_param_value[0]);
16829 }
16830 kfree(param_value);
16831 return 0;
16832}
16833
16834static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
16835 struct snd_ctl_elem_value *ucontrol)
16836{
16837 voc_session_id = ucontrol->value.integer.value[0];
16838
16839 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
16840
16841 return 0;
16842}
16843
16844static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
16845 struct snd_ctl_elem_value *ucontrol)
16846{
16847 ucontrol->value.integer.value[0] = voc_session_id;
16848
16849 return 0;
16850}
16851
16852static struct snd_kcontrol_new msm_voc_session_controls[] = {
16853 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
16854 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
16855 msm_voc_session_id_put),
16856};
16857
16858static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
16859 struct snd_ctl_elem_info *uinfo)
16860{
16861 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16862 uinfo->count = sizeof(struct sound_focus_param);
16863
16864 return 0;
16865}
16866
16867static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
16868 struct snd_ctl_elem_value *ucontrol)
16869{
16870 int ret = 0;
16871 struct sound_focus_param soundFocusData;
16872
16873 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
16874 sizeof(struct sound_focus_param));
16875 ret = voc_set_sound_focus(soundFocusData);
16876 if (ret) {
16877 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
16878 __func__, ret);
16879
16880 ret = -EINVAL;
16881 }
16882
16883 return ret;
16884}
16885
16886static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
16887 struct snd_ctl_elem_value *ucontrol)
16888{
16889 int ret = 0;
16890 struct sound_focus_param soundFocusData;
16891
16892 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
16893
16894 ret = voc_get_sound_focus(&soundFocusData);
16895 if (ret) {
16896 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
16897 __func__, ret);
16898
16899 ret = -EINVAL;
16900 goto done;
16901 }
16902 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
16903 sizeof(struct sound_focus_param));
16904
16905done:
16906 return ret;
16907}
16908
16909static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
16910 struct snd_ctl_elem_info *uinfo)
16911{
16912 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16913 uinfo->count = sizeof(struct source_tracking_param);
16914
16915 return 0;
16916}
16917
16918static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
16919 struct snd_ctl_elem_value *ucontrol)
16920{
Meng Wang92edfde2018-04-24 12:18:37 +080016921 int ret = 0;
16922 struct source_tracking_param sourceTrackingData;
16923
16924 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
16925
16926 ret = voc_get_source_tracking(&sourceTrackingData);
16927 if (ret) {
16928 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
16929 __func__, ret);
16930
16931 ret = -EINVAL;
16932 goto done;
16933 }
16934 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
16935 sizeof(struct source_tracking_param));
16936
16937done:
16938 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016939}
16940
16941static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
16942 int *copp_idx)
16943{
16944 int i, idx, be_idx;
16945 int ret = 0;
16946 unsigned long copp;
16947
16948 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
16949
16950 ret = q6audio_validate_port(port_id);
16951 if (ret < 0) {
16952 pr_err("%s: port validation failed id 0x%x ret %d\n",
16953 __func__, port_id, ret);
16954
16955 ret = -EINVAL;
16956 goto done;
16957 }
16958
16959 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
16960 if (msm_bedais[be_idx].port_id == port_id)
16961 break;
16962 }
16963 if (be_idx >= MSM_BACKEND_DAI_MAX) {
16964 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
16965
16966 ret = -EINVAL;
16967 goto done;
16968 }
16969
16970 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
16971 MSM_FRONTEND_DAI_MM_SIZE) {
16972 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16973 copp = session_copp_map[i]
16974 [session_type][be_idx];
16975 if (test_bit(idx, &copp))
16976 break;
16977 }
16978 if (idx >= MAX_COPPS_PER_PORT)
16979 continue;
16980 else
16981 break;
16982 }
16983 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
16984 pr_err("%s: Invalid FE, exiting\n", __func__);
16985
16986 ret = -EINVAL;
16987 goto done;
16988 }
16989 *copp_idx = idx;
16990 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
16991
16992done:
16993 return ret;
16994}
16995
16996static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
16997 const char *prefix, int *port_id)
16998{
16999 int ret = 0;
17000
17001 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17002
17003 /*
17004 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17005 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17006 * and compare the string with the backend name to derive the port id.
17007 */
17008 if (!strcmp(kcontrol->id.name + strlen(prefix),
17009 "SLIMBUS_0")) {
17010 *port_id = SLIMBUS_0_TX;
17011 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17012 "TERT_MI2S")) {
17013 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17014 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17015 "INT3_MI2S")) {
17016 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017017 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17018 "VA_CDC_DMA_TX_0")) {
17019 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017020 } else {
17021 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17022 __func__, kcontrol->id.name);
17023
17024 ret = -EINVAL;
17025 goto done;
17026 }
17027 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17028 __func__, kcontrol->id.name, *port_id);
17029
17030done:
17031 return ret;
17032}
17033
17034static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17035 struct snd_ctl_elem_value *ucontrol)
17036{
17037 int ret = 0;
17038 struct sound_focus_param soundFocusData;
17039 int port_id, copp_idx;
17040
17041 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17042 "Sound Focus Audio Tx ", &port_id);
17043 if (ret != 0) {
17044 pr_err("%s: Error in deriving port id, err=%d\n",
17045 __func__, ret);
17046
17047 ret = -EINVAL;
17048 goto done;
17049 }
17050
17051 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17052 &copp_idx);
17053 if (ret) {
17054 pr_err("%s: Could not get copp idx for port_id=%d\n",
17055 __func__, port_id);
17056
17057 ret = -EINVAL;
17058 goto done;
17059 }
17060
17061 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17062 sizeof(struct sound_focus_param));
17063
17064 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17065 if (ret) {
17066 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17067 __func__, ret);
17068
17069 ret = -EINVAL;
17070 goto done;
17071 }
17072
17073done:
17074 return ret;
17075}
17076
17077static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17078 struct snd_ctl_elem_value *ucontrol)
17079{
17080 int ret = 0;
17081 struct sound_focus_param soundFocusData;
17082 int port_id, copp_idx;
17083
17084 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17085 "Sound Focus Audio Tx ", &port_id);
17086 if (ret) {
17087 pr_err("%s: Error in deriving port id, err=%d\n",
17088 __func__, ret);
17089
17090 ret = -EINVAL;
17091 goto done;
17092 }
17093
17094 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17095 &copp_idx);
17096 if (ret) {
17097 pr_err("%s: Could not get copp idx for port_id=%d\n",
17098 __func__, port_id);
17099
17100 ret = -EINVAL;
17101 goto done;
17102 }
17103
17104 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17105 if (ret) {
17106 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17107 __func__, ret);
17108
17109 ret = -EINVAL;
17110 goto done;
17111 }
17112
17113 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17114 sizeof(struct sound_focus_param));
17115
17116done:
17117 return ret;
17118}
17119
17120static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17121 struct snd_ctl_elem_value *ucontrol)
17122{
17123 int ret = 0;
17124 struct source_tracking_param sourceTrackingData;
17125 int port_id, copp_idx;
17126
17127 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17128 "Source Tracking Audio Tx ", &port_id);
17129 if (ret) {
17130 pr_err("%s: Error in deriving port id, err=%d\n",
17131 __func__, ret);
17132
17133 ret = -EINVAL;
17134 goto done;
17135 }
17136
17137 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17138 &copp_idx);
17139 if (ret) {
17140 pr_err("%s: Could not get copp idx for port_id=%d\n",
17141 __func__, port_id);
17142
17143 ret = -EINVAL;
17144 goto done;
17145 }
17146
17147 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17148 if (ret) {
17149 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17150 __func__, ret);
17151
17152 ret = -EINVAL;
17153 goto done;
17154 }
17155
17156 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17157 sizeof(struct source_tracking_param));
17158
17159done:
17160 return ret;
17161}
17162
17163static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17164 {
17165 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17166 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17167 .name = "Sound Focus Voice Tx SLIMBUS_0",
17168 .info = msm_sound_focus_info,
17169 .get = msm_voice_sound_focus_get,
17170 .put = msm_voice_sound_focus_put,
17171 },
17172 {
17173 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17174 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17175 .name = "Source Tracking Voice Tx SLIMBUS_0",
17176 .info = msm_source_tracking_info,
17177 .get = msm_voice_source_tracking_get,
17178 },
17179 {
17180 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17181 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17182 .name = "Sound Focus Audio Tx SLIMBUS_0",
17183 .info = msm_sound_focus_info,
17184 .get = msm_audio_sound_focus_get,
17185 .put = msm_audio_sound_focus_put,
17186 },
17187 {
17188 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17189 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17190 .name = "Source Tracking Audio Tx SLIMBUS_0",
17191 .info = msm_source_tracking_info,
17192 .get = msm_audio_source_tracking_get,
17193 },
17194 {
17195 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17196 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17197 .name = "Sound Focus Voice Tx TERT_MI2S",
17198 .info = msm_sound_focus_info,
17199 .get = msm_voice_sound_focus_get,
17200 .put = msm_voice_sound_focus_put,
17201 },
17202 {
17203 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17204 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17205 .name = "Source Tracking Voice Tx TERT_MI2S",
17206 .info = msm_source_tracking_info,
17207 .get = msm_voice_source_tracking_get,
17208 },
17209 {
17210 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17211 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17212 .name = "Sound Focus Audio Tx TERT_MI2S",
17213 .info = msm_sound_focus_info,
17214 .get = msm_audio_sound_focus_get,
17215 .put = msm_audio_sound_focus_put,
17216 },
17217 {
17218 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17219 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17220 .name = "Source Tracking Audio Tx TERT_MI2S",
17221 .info = msm_source_tracking_info,
17222 .get = msm_audio_source_tracking_get,
17223 },
17224 {
17225 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17226 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17227 .name = "Sound Focus Voice Tx INT3_MI2S",
17228 .info = msm_sound_focus_info,
17229 .get = msm_voice_sound_focus_get,
17230 .put = msm_voice_sound_focus_put,
17231 },
17232 {
17233 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17234 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17235 .name = "Source Tracking Voice Tx INT3_MI2S",
17236 .info = msm_source_tracking_info,
17237 .get = msm_voice_source_tracking_get,
17238 },
17239 {
17240 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17241 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17242 .name = "Sound Focus Audio Tx INT3_MI2S",
17243 .info = msm_sound_focus_info,
17244 .get = msm_audio_sound_focus_get,
17245 .put = msm_audio_sound_focus_put,
17246 },
17247 {
17248 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17249 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17250 .name = "Source Tracking Audio Tx INT3_MI2S",
17251 .info = msm_source_tracking_info,
17252 .get = msm_audio_source_tracking_get,
17253 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017254 {
17255 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17256 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17257 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17258 .info = msm_sound_focus_info,
17259 .get = msm_voice_sound_focus_get,
17260 .put = msm_voice_sound_focus_put,
17261 },
17262 {
17263 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17264 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17265 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17266 .info = msm_source_tracking_info,
17267 .get = msm_voice_source_tracking_get,
17268 },
17269 {
17270 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17271 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17272 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17273 .info = msm_sound_focus_info,
17274 .get = msm_audio_sound_focus_get,
17275 .put = msm_audio_sound_focus_put,
17276 },
17277 {
17278 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17279 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17280 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17281 .info = msm_source_tracking_info,
17282 .get = msm_audio_source_tracking_get,
17283 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017284};
17285
17286static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17287 struct snd_ctl_elem_value *ucontrol)
17288{
17289 int ret = 0;
17290 int item;
17291 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17292
17293 pr_debug("%s item is %d\n", __func__,
17294 ucontrol->value.enumerated.item[0]);
17295 mutex_lock(&routing_lock);
17296 item = ucontrol->value.enumerated.item[0];
17297 if (item < e->items) {
17298 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17299 __func__, e->shift_l, e->values[item]);
17300 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17301 e->values[item] < MSM_BACKEND_DAI_MAX)
17302 /* Enable feedback TX path */
17303 ret = afe_spk_prot_feed_back_cfg(
17304 msm_bedais[e->values[item]].port_id,
17305 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17306 else {
17307 pr_debug("%s values are out of range item %d\n",
17308 __func__, e->values[item]);
17309 /* Disable feedback TX path */
17310 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17311 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17312 else
17313 ret = -EINVAL;
17314 }
17315 } else {
17316 pr_err("%s item value is out of range item\n", __func__);
17317 ret = -EINVAL;
17318 }
17319 mutex_unlock(&routing_lock);
17320 return ret;
17321}
17322
17323static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17324 struct snd_ctl_elem_value *ucontrol)
17325{
17326 int ret = 0;
17327 int item;
17328 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17329
17330 pr_debug("%s item is %d\n", __func__,
17331 ucontrol->value.enumerated.item[0]);
17332 mutex_lock(&routing_lock);
17333 item = ucontrol->value.enumerated.item[0];
17334 if (item < e->items) {
17335 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17336 __func__, e->shift_l, e->values[item]);
17337 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17338 e->values[item] < MSM_BACKEND_DAI_MAX)
17339 /* Enable feedback TX path */
17340 ret = afe_spk_prot_feed_back_cfg(
17341 msm_bedais[e->values[item]].port_id,
17342 msm_bedais[e->shift_l].port_id,
17343 1, 1, 1);
17344 else {
17345 pr_debug("%s values are out of range item %d\n",
17346 __func__, e->values[item]);
17347 /* Disable feedback TX path */
17348 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17349 ret = afe_spk_prot_feed_back_cfg(0,
17350 0, 0, 0, 0);
17351 else
17352 ret = -EINVAL;
17353 }
17354 } else {
17355 pr_err("%s item value is out of range item\n", __func__);
17356 ret = -EINVAL;
17357 }
17358 mutex_unlock(&routing_lock);
17359 return ret;
17360}
17361
17362static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17363 struct snd_ctl_elem_value *ucontrol)
17364{
17365 pr_debug("%s\n", __func__);
17366 return 0;
17367}
17368
17369static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17370 struct snd_ctl_elem_value *ucontrol)
17371{
17372 pr_debug("%s\n", __func__);
17373 ucontrol->value.enumerated.item[0] = 0;
17374 return 0;
17375}
17376
17377static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17378 "ZERO", "SLIM4_TX"
17379};
17380
17381static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17382 "ZERO", "SLIM4_TX"
17383};
17384
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017385static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17386 "ZERO", "WSA_CDC_DMA_TX_0"
17387};
17388
17389static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17390 "ZERO", "WSA_CDC_DMA_TX_0"
17391};
17392
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017393static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17394 "ZERO", "SENARY_TX"
17395};
17396
17397static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17398 "ZERO", "INT5_MI2S_TX"
17399};
17400
17401static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17402 "ZERO", "INT5_MI2S_TX"
17403};
17404
17405static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17406 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17407};
17408
17409static const int const slim0_rx_vi_fb_tx_rch_value[] = {
17410 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17411};
17412
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017413static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
17414 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17415};
17416
17417static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
17418 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17419};
17420
17421
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017422static const int const mi2s_rx_vi_fb_tx_value[] = {
17423 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
17424};
17425
17426static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
17427 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17428};
17429
17430static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
17431 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17432};
17433
17434static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
17435 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17436 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
17437 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
17438
17439static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
17440 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17441 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
17442 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
17443
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017444static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
17445 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17446 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
17447 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
17448
17449static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
17450 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17451 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
17452 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
17453
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017454static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
17455 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
17456 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
17457 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
17458
17459static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
17460 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17461 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
17462 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
17463 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
17464
17465static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
17466 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17467 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
17468 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
17469 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
17470
17471static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
17472 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
17473 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17474 spkr_prot_put_vi_lch_port);
17475
17476static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
17477 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
17478 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17479 spkr_prot_put_vi_rch_port);
17480
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017481static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
17482 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
17483 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17484 spkr_prot_put_vi_lch_port);
17485
17486static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
17487 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
17488 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17489 spkr_prot_put_vi_rch_port);
17490
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017491static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
17492 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
17493 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
17494 spkr_prot_put_vi_lch_port);
17495
17496static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
17497 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
17498 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
17499 spkr_prot_put_vi_lch_port);
17500
17501static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
17502 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
17503 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
17504 spkr_prot_put_vi_rch_port);
17505
17506static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
17507 /* Frontend AIF */
17508 /* Widget name equals to Front-End DAI name<Need confirmation>,
17509 * Stream name must contains substring of front-end dai name
17510 */
17511 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
17512 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
17513 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
17514 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
17515 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
17516 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
17517 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
17518 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
17519 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
17520 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
17521 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
17522 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
17523 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
17524 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
17525 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
17526 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
17527 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017528 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017529 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
17530 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
17531 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
17532 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
17533 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
17534 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
17535 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
17536 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
17537 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053017538 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053017539 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017540 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
17541 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
17542 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
17543 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017544 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080017545 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
17546 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017547 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
17548 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
17549 "VoiceMMode1 Playback", 0, 0, 0, 0),
17550 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
17551 "VoiceMMode1 Capture", 0, 0, 0, 0),
17552 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
17553 "VoiceMMode2 Playback", 0, 0, 0, 0),
17554 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
17555 "VoiceMMode2 Capture", 0, 0, 0, 0),
17556 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
17557 0, 0, 0, 0),
17558 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
17559 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017560 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
17561 0, 0, 0, 0),
17562 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
17563 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017564 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
17565 0, 0, 0, 0),
17566 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
17567 0, 0, 0, 0),
17568 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
17569 0, 0, 0, 0),
17570 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
17571 0, 0, 0, 0),
17572 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
17573 0, 0, 0, 0),
17574 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
17575 0, 0, 0, 0),
17576 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
17577 0, 0, 0, 0),
17578 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
17579 0, 0, 0, 0),
17580 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
17581 0, 0, 0, 0),
17582 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
17583 0, 0, 0, 0),
17584 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
17585 0, 0, 0, 0),
17586 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
17587 0, 0, 0, 0),
17588 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
17589 0, 0, 0, 0),
17590 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
17591 0, 0, 0, 0),
17592 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
17593 0, 0, 0, 0),
17594 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
17595 0, 0, 0, 0),
17596 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
17597 0, 0, 0, 0),
17598 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
17599 0, 0, 0, 0),
17600 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
17601 0, 0, 0, 0),
17602 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
17603 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
17604 0, 0, 0, 0),
17605 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
17606 "INT0 MI2S_RX Hostless Playback",
17607 0, 0, 0, 0),
17608 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
17609 "INT4 MI2S_RX Hostless Playback",
17610 0, 0, 0, 0),
17611 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
17612 "Primary MI2S_RX Hostless Playback",
17613 0, 0, 0, 0),
17614 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
17615 "Secondary MI2S_RX Hostless Playback",
17616 0, 0, 0, 0),
17617 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
17618 "Tertiary MI2S_RX Hostless Playback",
17619 0, 0, 0, 0),
17620 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
17621 "Quaternary MI2S_RX Hostless Playback",
17622 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017623 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
17624 "Quinary MI2S_RX Hostless Playback",
17625 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017626
17627 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
17628 0, 0, 0, 0),
17629 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
17630 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017631 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
17632 0, 0, 0, 0),
17633 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
17634 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017635 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
17636 0, 0, 0, 0),
17637 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
17638 "INT3 MI2S_TX Hostless Capture",
17639 0, 0, 0, 0),
17640 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
17641 "Tertiary MI2S_TX Hostless Capture",
17642 0, 0, 0, 0),
17643 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
17644 "Secondary MI2S_TX Hostless Capture",
17645 0, 0, 0, 0),
17646 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
17647 "Primary MI2S_TX Hostless Capture",
17648 0, 0, 0, 0),
17649 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
17650 0, 0, 0, 0),
17651 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
17652 0, 0, 0, 0),
17653 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
17654 "Quaternary MI2S_TX Hostless Capture",
17655 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017656 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
17657 "Quinary MI2S_TX Hostless Capture",
17658 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017659
17660 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
17661 "Primary TDM0 Hostless Playback",
17662 0, 0, 0, 0),
17663 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
17664 "Primary TDM0 Hostless Capture",
17665 0, 0, 0, 0),
17666 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
17667 "Primary TDM1 Hostless Playback",
17668 0, 0, 0, 0),
17669 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
17670 "Primary TDM1 Hostless Capture",
17671 0, 0, 0, 0),
17672 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
17673 "Primary TDM2 Hostless Playback",
17674 0, 0, 0, 0),
17675 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
17676 "Primary TDM2 Hostless Capture",
17677 0, 0, 0, 0),
17678 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
17679 "Primary TDM3 Hostless Playback",
17680 0, 0, 0, 0),
17681 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
17682 "Primary TDM3 Hostless Capture",
17683 0, 0, 0, 0),
17684 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
17685 "Primary TDM4 Hostless Playback",
17686 0, 0, 0, 0),
17687 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
17688 "Primary TDM4 Hostless Capture",
17689 0, 0, 0, 0),
17690 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
17691 "Primary TDM5 Hostless Playback",
17692 0, 0, 0, 0),
17693 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
17694 "Primary TDM5 Hostless Capture",
17695 0, 0, 0, 0),
17696 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
17697 "Primary TDM6 Hostless Playback",
17698 0, 0, 0, 0),
17699 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
17700 "Primary TDM6 Hostless Capture",
17701 0, 0, 0, 0),
17702 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
17703 "Primary TDM7 Hostless Playback",
17704 0, 0, 0, 0),
17705 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
17706 "Primary TDM7 Hostless Capture",
17707 0, 0, 0, 0),
17708 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
17709 "Secondary TDM0 Hostless Playback",
17710 0, 0, 0, 0),
17711 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
17712 "Secondary TDM0 Hostless Capture",
17713 0, 0, 0, 0),
17714 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
17715 "Secondary TDM1 Hostless Playback",
17716 0, 0, 0, 0),
17717 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
17718 "Secondary TDM1 Hostless Capture",
17719 0, 0, 0, 0),
17720 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
17721 "Secondary TDM2 Hostless Playback",
17722 0, 0, 0, 0),
17723 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
17724 "Secondary TDM2 Hostless Capture",
17725 0, 0, 0, 0),
17726 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
17727 "Secondary TDM3 Hostless Playback",
17728 0, 0, 0, 0),
17729 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
17730 "Secondary TDM3 Hostless Capture",
17731 0, 0, 0, 0),
17732 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
17733 "Secondary TDM4 Hostless Playback",
17734 0, 0, 0, 0),
17735 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
17736 "Secondary TDM4 Hostless Capture",
17737 0, 0, 0, 0),
17738 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
17739 "Secondary TDM5 Hostless Playback",
17740 0, 0, 0, 0),
17741 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
17742 "Secondary TDM5 Hostless Capture",
17743 0, 0, 0, 0),
17744 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
17745 "Secondary TDM6 Hostless Playback",
17746 0, 0, 0, 0),
17747 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
17748 "Secondary TDM6 Hostless Capture",
17749 0, 0, 0, 0),
17750 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
17751 "Secondary TDM7 Hostless Playback",
17752 0, 0, 0, 0),
17753 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
17754 "Secondary TDM7 Hostless Capture",
17755 0, 0, 0, 0),
17756 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
17757 "Tertiary TDM0 Hostless Playback",
17758 0, 0, 0, 0),
17759 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
17760 "Tertiary TDM0 Hostless Capture",
17761 0, 0, 0, 0),
17762 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
17763 "Tertiary TDM1 Hostless Playback",
17764 0, 0, 0, 0),
17765 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
17766 "Tertiary TDM1 Hostless Capture",
17767 0, 0, 0, 0),
17768 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
17769 "Tertiary TDM2 Hostless Playback",
17770 0, 0, 0, 0),
17771 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
17772 "Tertiary TDM2 Hostless Capture",
17773 0, 0, 0, 0),
17774 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
17775 "Tertiary TDM3 Hostless Playback",
17776 0, 0, 0, 0),
17777 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
17778 "Tertiary TDM3 Hostless Capture",
17779 0, 0, 0, 0),
17780 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
17781 "Tertiary TDM4 Hostless Playback",
17782 0, 0, 0, 0),
17783 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
17784 "Tertiary TDM4 Hostless Capture",
17785 0, 0, 0, 0),
17786 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
17787 "Tertiary TDM5 Hostless Playback",
17788 0, 0, 0, 0),
17789 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
17790 "Tertiary TDM5 Hostless Capture",
17791 0, 0, 0, 0),
17792 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
17793 "Tertiary TDM6 Hostless Playback",
17794 0, 0, 0, 0),
17795 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
17796 "Tertiary TDM6 Hostless Capture",
17797 0, 0, 0, 0),
17798 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
17799 "Tertiary TDM7 Hostless Playback",
17800 0, 0, 0, 0),
17801 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
17802 "Tertiary TDM7 Hostless Capture",
17803 0, 0, 0, 0),
17804 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
17805 "Quaternary TDM0 Hostless Playback",
17806 0, 0, 0, 0),
17807 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
17808 "Quaternary TDM0 Hostless Capture",
17809 0, 0, 0, 0),
17810 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
17811 "Quaternary TDM1 Hostless Playback",
17812 0, 0, 0, 0),
17813 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
17814 "Quaternary TDM1 Hostless Capture",
17815 0, 0, 0, 0),
17816 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
17817 "Quaternary TDM2 Hostless Playback",
17818 0, 0, 0, 0),
17819 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
17820 "Quaternary TDM2 Hostless Capture",
17821 0, 0, 0, 0),
17822 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
17823 "Quaternary TDM3 Hostless Playback",
17824 0, 0, 0, 0),
17825 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
17826 "Quaternary TDM3 Hostless Capture",
17827 0, 0, 0, 0),
17828 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
17829 "Quaternary TDM4 Hostless Playback",
17830 0, 0, 0, 0),
17831 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
17832 "Quaternary TDM4 Hostless Capture",
17833 0, 0, 0, 0),
17834 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
17835 "Quaternary TDM5 Hostless Playback",
17836 0, 0, 0, 0),
17837 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
17838 "Quaternary TDM5 Hostless Capture",
17839 0, 0, 0, 0),
17840 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
17841 "Quaternary TDM6 Hostless Playback",
17842 0, 0, 0, 0),
17843 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
17844 "Quaternary TDM6 Hostless Capture",
17845 0, 0, 0, 0),
17846 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
17847 "Quaternary TDM7 Hostless Playback",
17848 0, 0, 0, 0),
17849 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
17850 "Quaternary TDM7 Hostless Capture",
17851 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017852 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
17853 "Quinary TDM0 Hostless Playback",
17854 0, 0, 0, 0),
17855 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
17856 "Quinary TDM0 Hostless Capture",
17857 0, 0, 0, 0),
17858 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
17859 "Quinary TDM1 Hostless Playback",
17860 0, 0, 0, 0),
17861 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
17862 "Quinary TDM1 Hostless Capture",
17863 0, 0, 0, 0),
17864 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
17865 "Quinary TDM2 Hostless Playback",
17866 0, 0, 0, 0),
17867 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
17868 "Quinary TDM2 Hostless Capture",
17869 0, 0, 0, 0),
17870 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
17871 "Quinary TDM3 Hostless Playback",
17872 0, 0, 0, 0),
17873 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
17874 "Quinary TDM3 Hostless Capture",
17875 0, 0, 0, 0),
17876 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
17877 "Quinary TDM4 Hostless Playback",
17878 0, 0, 0, 0),
17879 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
17880 "Quinary TDM4 Hostless Capture",
17881 0, 0, 0, 0),
17882 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
17883 "Quinary TDM5 Hostless Playback",
17884 0, 0, 0, 0),
17885 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
17886 "Quinary TDM5 Hostless Capture",
17887 0, 0, 0, 0),
17888 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
17889 "Quinary TDM6 Hostless Playback",
17890 0, 0, 0, 0),
17891 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
17892 "Quinary TDM6 Hostless Capture",
17893 0, 0, 0, 0),
17894 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
17895 "Quinary TDM7 Hostless Playback",
17896 0, 0, 0, 0),
17897 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
17898 "Quinary TDM7 Hostless Capture",
17899 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017900
17901 /* LSM */
17902 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
17903 0, 0, 0, 0),
17904 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
17905 0, 0, 0, 0),
17906 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
17907 0, 0, 0, 0),
17908 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
17909 0, 0, 0, 0),
17910 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
17911 0, 0, 0, 0),
17912 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
17913 0, 0, 0, 0),
17914 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
17915 0, 0, 0, 0),
17916 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
17917 0, 0, 0, 0),
17918 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
17919 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
17920 /* Backend AIF */
17921 /* Stream name equals to backend dai link stream name */
17922 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
17923 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
17924 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020017925 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
17926 0, 0, 0, 0),
17927 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
17928 0, 0, 0, 0),
17929 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
17930 0, 0, 0, 0),
17931 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
17932 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017933 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
17934 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
17935 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
17936 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
17937 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
17938 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070017939 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
17940 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017941 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
17942 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
17943 0, 0, 0, 0),
17944 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
17945 0, 0, 0, 0),
17946 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
17947 0, 0, 0, 0),
17948 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
17949 "Secondary MI2S Playback SD1",
17950 0, 0, 0, 0),
17951 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
17952 0, 0, 0, 0),
17953 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
17954 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053017955 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
17956 0, 0, 0, 0),
17957 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
17958 0, 0, 0, 0),
17959 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
17960 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017961 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
17962 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053017963 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
17964 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017965 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
17966 0, 0, 0, 0),
17967 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
17968 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
17969 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
17970 0, 0, 0, 0),
17971 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
17972 0, 0, 0, 0),
17973 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
17974 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053017975 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
17976 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017977 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
17978 0, 0, 0, 0),
17979 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
17980 0, 0, 0, 0),
17981 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
17982 0, 0, 0, 0),
17983 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
17984 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
17985 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
17986 0, 0, 0, 0),
17987 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
17988 0, 0, 0, 0),
17989 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
17990 0, 0, 0, 0),
17991 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
17992 0, 0, 0, 0),
17993 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
17994 0, 0, 0, 0),
17995 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
17996 0, 0, 0, 0),
17997 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
17998 0, 0, 0, 0),
17999 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18000 0, 0, 0, 0),
18001 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18002 0, 0, 0, 0),
18003 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18004 0, 0, 0, 0),
18005 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18006 0, 0, 0, 0),
18007 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18008 0, 0, 0, 0),
18009 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18010 0, 0, 0, 0),
18011 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18012 0, 0, 0, 0),
18013 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18014 0, 0, 0, 0),
18015 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18016 0, 0, 0, 0),
18017 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18018 0, 0, 0, 0),
18019 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18020 0, 0, 0, 0),
18021 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18022 0, 0, 0, 0),
18023 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18024 0, 0, 0, 0),
18025 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18026 0, 0, 0, 0),
18027 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18028 0, 0, 0, 0),
18029 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18030 0, 0, 0, 0),
18031 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18032 0, 0, 0, 0),
18033 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18034 0, 0, 0, 0),
18035 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18036 0, 0, 0, 0),
18037 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18038 0, 0, 0, 0),
18039 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18040 0, 0, 0, 0),
18041 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18042 0, 0, 0, 0),
18043 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18044 0, 0, 0, 0),
18045 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18046 0, 0, 0, 0),
18047 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18048 0, 0, 0, 0),
18049 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18050 0, 0, 0, 0),
18051 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18052 0, 0, 0, 0),
18053 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18054 0, 0, 0, 0),
18055 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18056 0, 0, 0, 0),
18057 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18058 0, 0, 0, 0),
18059 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18060 0, 0, 0, 0),
18061 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18062 0, 0, 0, 0),
18063 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18064 0, 0, 0, 0),
18065 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18066 0, 0, 0, 0),
18067 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18068 0, 0, 0, 0),
18069 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18070 0, 0, 0, 0),
18071 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18072 0, 0, 0, 0),
18073 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18074 0, 0, 0, 0),
18075 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18076 0, 0, 0, 0),
18077 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18078 0, 0, 0, 0),
18079 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18080 0, 0, 0, 0),
18081 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18082 0, 0, 0, 0),
18083 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18084 0, 0, 0, 0),
18085 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18086 0, 0, 0, 0),
18087 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18088 0, 0, 0, 0),
18089 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18090 0, 0, 0, 0),
18091 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18092 0, 0, 0, 0),
18093 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18094 0, 0, 0, 0),
18095 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18096 0, 0, 0, 0),
18097 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18098 0, 0, 0, 0),
18099 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18100 0, 0, 0, 0),
18101 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18102 0, 0, 0, 0),
18103 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18104 0, 0, 0, 0),
18105 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18106 0, 0, 0, 0),
18107 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18108 0, 0, 0, 0),
18109 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18110 0, 0, 0, 0),
18111 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18112 0, 0, 0, 0),
18113 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18114 0, 0, 0, 0),
18115 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18116 0, 0, 0, 0),
18117 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18118 0, 0, 0, 0),
18119 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18120 0, 0, 0, 0),
18121 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18122 0, 0, 0, 0),
18123 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18124 0, 0, 0, 0),
18125 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18126 0, 0, 0, 0),
18127 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18128 0, 0, 0, 0),
18129 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18130 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018131 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18132 0, 0, 0, 0),
18133 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18134 0, 0, 0, 0),
18135 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18136 0, 0, 0, 0),
18137 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18138 0, 0, 0, 0),
18139 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18140 0, 0, 0, 0),
18141 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18142 0, 0, 0, 0),
18143 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18144 0, 0, 0, 0),
18145 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18146 0, 0, 0, 0),
18147 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18148 0, 0, 0, 0),
18149 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18150 0, 0, 0, 0),
18151 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18152 0, 0, 0, 0),
18153 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18154 0, 0, 0, 0),
18155 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18156 0, 0, 0, 0),
18157 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18158 0, 0, 0, 0),
18159 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18160 0, 0, 0, 0),
18161 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18162 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018163 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18164 0, 0, 0, 0),
18165 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18166 0, 0, 0, 0),
18167 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18168 0, 0, 0, 0),
18169 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18170 0, 0, 0, 0),
18171 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18172 0, 0, 0, 0),
18173 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18174 0, 0, 0, 0),
18175 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18176 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018177 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18178 0, 0, 0, 0),
18179 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18180 0, 0, 0, 0),
18181 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18182 0, 0, 0, 0),
18183 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18184 0, 0, 0, 0),
18185 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18186 0, 0, 0, 0),
18187 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18188 0, 0, 0, 0),
18189 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18190 0, 0, 0, 0),
18191 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18192 0, 0, 0, 0),
18193 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18194 0, 0, 0, 0),
18195 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18196 0, 0, 0, 0),
18197 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18198 0, 0, 0, 0),
18199 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18200 0, 0, 0, 0),
18201 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18202 0, 0, 0, 0),
18203 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18204 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018205 /* incall */
18206 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18207 0, 0, 0, 0),
18208 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18209 0, 0, 0, 0),
18210 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18211 0, 0, 0, 0),
18212 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18213 0, 0, 0, 0),
18214 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18215 0, 0, 0, 0),
18216 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18217 0, 0, 0, 0),
18218 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18219 0, 0, 0, 0),
18220 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18221 0, 0, 0, 0),
18222 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18223
18224 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18225 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18226 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18227 0, 0, 0, 0),
18228 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18229 0, 0, 0, 0),
18230 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18231 0, 0, 0, 0),
18232 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18233 0, 0, 0, 0),
18234 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18235 0, 0, 0, 0),
18236 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18237 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018238 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18239 0, 0, 0, 0),
18240 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18241 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018242 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18243 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18244 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18245 0, 0, 0, 0),
18246 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18247 0, 0, 0, 0),
18248 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18249 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18250 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18251 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18252 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18253 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18254 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18255 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18256 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18257 /* In- call recording */
18258 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18259 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
18260
18261 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18262 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18263
18264 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18265 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
18266 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18267 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18268
18269 /* Switch Definitions */
18270 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18271 &slim_fm_switch_mixer_controls),
18272 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18273 &slim1_fm_switch_mixer_controls),
18274 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18275 &slim3_fm_switch_mixer_controls),
18276 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18277 &slim4_fm_switch_mixer_controls),
18278 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18279 &slim6_fm_switch_mixer_controls),
18280 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18281 &pcm_rx_switch_mixer_controls),
18282 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18283 &int0_mi2s_rx_switch_mixer_controls),
18284 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18285 &int4_mi2s_rx_switch_mixer_controls),
18286 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18287 &pri_mi2s_rx_switch_mixer_controls),
18288 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18289 &sec_mi2s_rx_switch_mixer_controls),
18290 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18291 &tert_mi2s_rx_switch_mixer_controls),
18292 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18293 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018294 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18295 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018296 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18297 &hfp_pri_aux_switch_mixer_controls),
18298 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18299 &hfp_aux_switch_mixer_controls),
18300 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18301 &hfp_int_switch_mixer_controls),
18302 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18303 &hfp_slim7_switch_mixer_controls),
18304 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18305 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018306 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18307 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018308 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
18309 &cdc_dma_fm_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018310
18311 /* Mixer definitions */
18312 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18313 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18314 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18315 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18316 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18317 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18318 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18319 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18320 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18321 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18322 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18323 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
18324 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18325 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18326 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18327 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018328 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18329 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018330 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18331 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18332 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18333 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018334 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18335 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18336 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18337 quaternary_mi2s_rx_mixer_controls,
18338 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18339 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18340 tertiary_mi2s_rx_mixer_controls,
18341 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18342 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18343 secondary_mi2s_rx_mixer_controls,
18344 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18345 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18346 secondary_mi2s_rx2_mixer_controls,
18347 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18348 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18349 primary_mi2s_rx_mixer_controls,
18350 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18351 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18352 int0_mi2s_rx_mixer_controls,
18353 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18354 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18355 int4_mi2s_rx_mixer_controls,
18356 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18357 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18358 quinary_mi2s_rx_mixer_controls,
18359 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18360 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18361 pri_tdm_rx_0_mixer_controls,
18362 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18363 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18364 pri_tdm_rx_1_mixer_controls,
18365 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18366 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18367 pri_tdm_rx_2_mixer_controls,
18368 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18369 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18370 pri_tdm_rx_3_mixer_controls,
18371 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18372 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18373 pri_tdm_tx_0_mixer_controls,
18374 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18375 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18376 sec_tdm_rx_0_mixer_controls,
18377 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18378 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18379 sec_tdm_rx_1_mixer_controls,
18380 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18381 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18382 sec_tdm_rx_2_mixer_controls,
18383 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18384 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18385 sec_tdm_rx_3_mixer_controls,
18386 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18387 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18388 sec_tdm_tx_0_mixer_controls,
18389 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18390 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18391 tert_tdm_rx_0_mixer_controls,
18392 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18393 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18394 tert_tdm_tx_0_mixer_controls,
18395 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18396 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18397 tert_tdm_rx_1_mixer_controls,
18398 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
18399 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18400 tert_tdm_rx_2_mixer_controls,
18401 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
18402 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18403 tert_tdm_rx_3_mixer_controls,
18404 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
18405 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18406 tert_tdm_rx_4_mixer_controls,
18407 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
18408 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18409 quat_tdm_rx_0_mixer_controls,
18410 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
18411 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18412 quat_tdm_tx_0_mixer_controls,
18413 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
18414 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18415 quat_tdm_rx_1_mixer_controls,
18416 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
18417 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18418 quat_tdm_rx_2_mixer_controls,
18419 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
18420 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18421 quat_tdm_rx_3_mixer_controls,
18422 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018423 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18424 quin_tdm_rx_0_mixer_controls,
18425 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
18426 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18427 quin_tdm_tx_0_mixer_controls,
18428 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
18429 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18430 quin_tdm_rx_1_mixer_controls,
18431 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
18432 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18433 quin_tdm_rx_2_mixer_controls,
18434 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
18435 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18436 quin_tdm_rx_3_mixer_controls,
18437 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018438 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18439 wsa_cdc_dma_rx_0_mixer_controls,
18440 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
18441 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18442 wsa_cdc_dma_rx_1_mixer_controls,
18443 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018444 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18445 rx_cdc_dma_rx_0_mixer_controls,
18446 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
18447 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18448 rx_cdc_dma_rx_1_mixer_controls,
18449 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
18450 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18451 rx_cdc_dma_rx_2_mixer_controls,
18452 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
18453 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18454 rx_cdc_dma_rx_3_mixer_controls,
18455 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
18456 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18457 rx_cdc_dma_rx_4_mixer_controls,
18458 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
18459 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
18460 rx_cdc_dma_rx_5_mixer_controls,
18461 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
18462 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
18463 rx_cdc_dma_rx_6_mixer_controls,
18464 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
18465 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
18466 rx_cdc_dma_rx_7_mixer_controls,
18467 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018468 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
18469 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
18470 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
18471 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
18472 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
18473 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
18474 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
18475 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
18476 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
18477 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
18478 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
18479 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
18480 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
18481 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
18482 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
18483 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018484 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
18485 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018486 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
18487 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018488 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
18489 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
18490 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
18491 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
18492 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
18493 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
18494 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
18495 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018496 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
18497 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018498 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
18499 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
18500 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
18501 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018502 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18503 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
18504 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18505 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
18506 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18507 tert_auxpcm_rx_mixer_controls,
18508 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
18509 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18510 quat_auxpcm_rx_mixer_controls,
18511 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018512 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18513 quin_auxpcm_rx_mixer_controls,
18514 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018515 /* incall */
18516 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
18517 incall_music_delivery_mixer_controls,
18518 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
18519 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18520 incall_music2_delivery_mixer_controls,
18521 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
18522 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18523 slimbus_4_rx_mixer_controls,
18524 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
18525 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18526 slimbus_6_rx_mixer_controls,
18527 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
18528 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18529 usb_audio_rx_mixer_controls,
18530 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
18531 /* Voice Mixer */
18532 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
18533 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
18534 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
18535 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
18536 SND_SOC_NOPM, 0, 0,
18537 sec_i2s_rx_voice_mixer_controls,
18538 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
18539 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
18540 SND_SOC_NOPM, 0, 0,
18541 sec_mi2s_rx_voice_mixer_controls,
18542 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
18543 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
18544 SND_SOC_NOPM, 0, 0,
18545 slimbus_rx_voice_mixer_controls,
18546 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
18547 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
18548 SND_SOC_NOPM, 0, 0,
18549 bt_sco_rx_voice_mixer_controls,
18550 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
18551 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
18552 SND_SOC_NOPM, 0, 0,
18553 afe_pcm_rx_voice_mixer_controls,
18554 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
18555 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
18556 SND_SOC_NOPM, 0, 0,
18557 aux_pcm_rx_voice_mixer_controls,
18558 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
18559 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
18560 SND_SOC_NOPM, 0, 0,
18561 sec_aux_pcm_rx_voice_mixer_controls,
18562 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
18563 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
18564 SND_SOC_NOPM, 0, 0,
18565 tert_aux_pcm_rx_voice_mixer_controls,
18566 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
18567 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
18568 SND_SOC_NOPM, 0, 0,
18569 quat_aux_pcm_rx_voice_mixer_controls,
18570 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018571 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
18572 SND_SOC_NOPM, 0, 0,
18573 quin_aux_pcm_rx_voice_mixer_controls,
18574 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018575 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
18576 SND_SOC_NOPM, 0, 0,
18577 hdmi_rx_voice_mixer_controls,
18578 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
18579 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
18580 SND_SOC_NOPM, 0, 0,
18581 mi2s_rx_voice_mixer_controls,
18582 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
18583 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
18584 SND_SOC_NOPM, 0, 0,
18585 pri_mi2s_rx_voice_mixer_controls,
18586 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
18587 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
18588 SND_SOC_NOPM, 0, 0,
18589 int0_mi2s_rx_voice_mixer_controls,
18590 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
18591 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
18592 SND_SOC_NOPM, 0, 0,
18593 int4_mi2s_rx_voice_mixer_controls,
18594 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
18595 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
18596 SND_SOC_NOPM, 0, 0,
18597 tert_mi2s_rx_voice_mixer_controls,
18598 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
18599 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
18600 SND_SOC_NOPM, 0, 0,
18601 quat_mi2s_rx_voice_mixer_controls,
18602 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
18603 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
18604 SND_SOC_NOPM, 0, 0,
18605 quin_mi2s_rx_voice_mixer_controls,
18606 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
18607 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
18608 SND_SOC_NOPM, 0, 0,
18609 quat_tdm_rx_2_voice_mixer_controls,
18610 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018611 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
18612 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
18613 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018614 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
18615 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
18616 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
18617 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
18618 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
18619 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
18620 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18621 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
18622 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18623 int_bt_a2dp_rx_mixer_controls,
18624 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
18625 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18626 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
18627 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18628 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
18629 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18630 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
18631 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18632 tx_voice2_stub_mixer_controls,
18633 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
18634 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18635 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
18636 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
18637 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
18638 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
18639 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
18640 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18641 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
18642 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
18643 SND_SOC_NOPM, 0, 0,
18644 slimbus_6_rx_voice_mixer_controls,
18645 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
18646 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18647 slimbus_7_rx_voice_mixer_controls,
18648 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
18649 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18650 slimbus_8_rx_voice_mixer_controls,
18651 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
18652 /* port mixer */
18653 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
18654 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
18655 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
18656 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
18657 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
18658 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
18659 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
18660 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
18661 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
18662 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
18663 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
18664 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
18665 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
18666 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
18667 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018668 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
18669 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
18670 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018671 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18672 sbus_1_rx_port_mixer_controls,
18673 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
18674 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18675 bt_sco_rx_port_mixer_controls,
18676 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
18677 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
18678 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
18679 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
18680 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
18681 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
18682 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
18683 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
18684 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
18685 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070018686 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070018687 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
18688 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018689 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
18690 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
18691 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
18692 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
18693 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
18694 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
18695 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
18696 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
18697 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
18698 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18699 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
18700 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18701 primary_mi2s_rx_port_mixer_controls,
18702 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
18703 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18704 sec_mi2s_rx_port_mixer_controls,
18705 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
18706 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18707 tert_mi2s_rx_port_mixer_controls,
18708 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
18709 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18710 quat_mi2s_rx_port_mixer_controls,
18711 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018712 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18713 quin_mi2s_rx_port_mixer_controls,
18714 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018715 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18716 pri_tdm_rx_0_port_mixer_controls,
18717 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
18718 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18719 pri_tdm_rx_1_port_mixer_controls,
18720 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
18721 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18722 pri_tdm_rx_2_port_mixer_controls,
18723 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
18724 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18725 pri_tdm_rx_3_port_mixer_controls,
18726 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
18727 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18728 sec_tdm_rx_0_port_mixer_controls,
18729 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
18730 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18731 sec_tdm_rx_1_port_mixer_controls,
18732 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
18733 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18734 sec_tdm_rx_2_port_mixer_controls,
18735 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
18736 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18737 sec_tdm_rx_3_port_mixer_controls,
18738 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
18739 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18740 tert_tdm_rx_0_port_mixer_controls,
18741 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
18742 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18743 tert_tdm_rx_1_port_mixer_controls,
18744 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
18745 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18746 tert_tdm_rx_2_port_mixer_controls,
18747 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
18748 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18749 tert_tdm_rx_3_port_mixer_controls,
18750 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
18751 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18752 quat_tdm_rx_0_port_mixer_controls,
18753 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
18754 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18755 quat_tdm_rx_1_port_mixer_controls,
18756 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
18757 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18758 quat_tdm_rx_2_port_mixer_controls,
18759 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
18760 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18761 quat_tdm_rx_3_port_mixer_controls,
18762 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018763 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18764 quin_tdm_rx_0_port_mixer_controls,
18765 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
18766 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18767 quin_tdm_rx_1_port_mixer_controls,
18768 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
18769 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18770 quin_tdm_rx_2_port_mixer_controls,
18771 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
18772 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18773 quin_tdm_rx_3_port_mixer_controls,
18774 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018775 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18776 int0_mi2s_rx_port_mixer_controls,
18777 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
18778 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18779 int4_mi2s_rx_port_mixer_controls,
18780 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
18781 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
18782 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
18783 ARRAY_SIZE(tx_qchat_mixer_controls)),
18784 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
18785 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
18786 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
18787 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
18788 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
18789 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080018790 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
18791 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
18792 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018793 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
18794 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
18795 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018796 /* lsm mixer definitions */
18797 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
18798 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
18799 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
18800 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
18801 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
18802 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
18803 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
18804 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
18805 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
18806 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
18807 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
18808 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
18809 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
18810 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
18811 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
18812 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
18813 /* Virtual Pins to force backends ON atm */
18814 SND_SOC_DAPM_OUTPUT("BE_OUT"),
18815 SND_SOC_DAPM_INPUT("BE_IN"),
18816
18817 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18818 &slim0_rx_vi_fb_lch_mux),
18819 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18820 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018821 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18822 &wsa_rx_0_vi_fb_lch_mux),
18823 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18824 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018825 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
18826 &mi2s_rx_vi_fb_mux),
18827 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
18828 &int4_mi2s_rx_vi_fb_mono_ch_mux),
18829 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
18830 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
18831
18832 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
18833 &voc_ext_ec_mux),
18834 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
18835 &ext_ec_ref_mux_ul1),
18836 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
18837 &ext_ec_ref_mux_ul2),
18838 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
18839 &ext_ec_ref_mux_ul3),
18840 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
18841 &ext_ec_ref_mux_ul4),
18842 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
18843 &ext_ec_ref_mux_ul5),
18844 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
18845 &ext_ec_ref_mux_ul6),
18846 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
18847 &ext_ec_ref_mux_ul8),
18848 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
18849 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018850 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
18851 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018852 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
18853 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018854 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
18855 &ext_ec_ref_mux_ul17),
18856 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
18857 &ext_ec_ref_mux_ul18),
18858 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
18859 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080018860 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
18861 &ext_ec_ref_mux_ul28),
18862 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
18863 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018864};
18865
18866static const struct snd_soc_dapm_route intercon[] = {
18867 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18868 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18869 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18870 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18871 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18872 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18873 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18874 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18875 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18876 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18877 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18878 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18879 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18880 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18881 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18882 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18883 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
18884
18885 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18886 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18887 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18888 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18889 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18890 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18891 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18892 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18893 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18894 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18895 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18896 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18897 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18898 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18899 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18900 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18901 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
18902
18903 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18904 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18905 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18906 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18907 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18908 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18909 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18910 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18911 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18912 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18913 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18914 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18915 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18916 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18917 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18918 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18919 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
18920
18921 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18922 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18923 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18924 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18925 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18926 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18927 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18928 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18929 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18930 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18931 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18932 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18933 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18934 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18935 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18936 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18937 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
18938
18939 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18940 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18941 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18942 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18943 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18944 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18945 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18946 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18947 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18948 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18949 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18950 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18951 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18952 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18953 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18954 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18955 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
18956
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018957 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
18958 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
18959 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
18960 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
18961 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
18962 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
18963 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
18964 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
18965 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
18966 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
18967 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
18968 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
18969 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
18970 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
18971 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
18972 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
18973 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
18974
18975 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
18976 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
18977 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
18978 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
18979 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
18980 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
18981 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
18982 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
18983 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
18984 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
18985 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
18986 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
18987 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
18988 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
18989 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
18990 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
18991 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
18992
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018993 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
18994 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
18995 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
18996 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
18997 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
18998 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
18999 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19000 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19001 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19002 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19003 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19004 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19005 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19006 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19007 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19008 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19009 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19010
19011 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19012 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19013 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19014 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19015 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19016 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19017 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19018 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19019 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19020 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19021 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19022 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19023 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19024 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19025 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19026 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19027 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19028
19029 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19030 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19031 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19032 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19033 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19034 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19035 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19036 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19037 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19038 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19039 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19040 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19041 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19042 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19043 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19044 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19045 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19046
19047 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19048 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19049 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19050 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19051 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19052 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19053 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19054 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19055 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19056 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19057 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19058 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19059 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19060 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19061 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19062 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19063 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19064
19065 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19066 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19067 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19068 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19069 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19070 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19071 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19072 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19073 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19074 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19075 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19076 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19077 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19078 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19079 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19080 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
19081 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19082
19083 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19084 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19085 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19086 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19087 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19088 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19089 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19090 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19091 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19092 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19093 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19094 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19095 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19096 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19097 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19098 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
19099 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19100
19101 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19102 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19103 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19104 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19105 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19106 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19107 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19108 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19109 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19110 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19111 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19112 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19113 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19114 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19115 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19116 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
19117 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19118
19119 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19120 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19121 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19122 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19123 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19124 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19125 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19126 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19127 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19128 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19129 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19130 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19131 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19132 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19133 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19134 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
19135 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19136
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019137 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19138 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19139 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19140 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19141 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19142 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19143 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19144 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19145 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19146 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19147 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19148 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19149 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19150 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19151 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19152 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
19153 {"HDMI", NULL, "HDMI Mixer"},
19154
19155 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19156 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19157 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19158 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19159 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19160 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19161 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19162 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19163 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19164 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19165 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19166 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19167 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19168 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19169 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19170 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
19171 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19172
Karthikeyan Mani57550082018-05-03 18:43:58 -070019173 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19174 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19175 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19176 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19177 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19178 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19179 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19180 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19181 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19182 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19183 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19184 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19185 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19186 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19187 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19188 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
19189 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19190
Ralf Herzc8701f72018-06-20 11:37:35 +020019191 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19192 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19193 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19194 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19195 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19196 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19197 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19198 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19199 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19200 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19201 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19202 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19203 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19204 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19205 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19206 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19207 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19208
19209 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19210 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19211 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19212 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19213 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19214 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19215 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19216 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19217 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19218 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19219 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19220 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19221 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19222 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19223 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19224 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19225 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019226
19227 /* incall */
19228 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19229 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19230 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19231 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19232 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19233 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19234 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19235 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19236 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19237 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19238 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19239 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19240 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19241 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19242 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19243
19244 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19245 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19246 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19247 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19248 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19249 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19250 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19251 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19252 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19253 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19254 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19255 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19256 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19257 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19258 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19259 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19260 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19261
19262 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19263 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19264 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19265 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19266 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19267 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19268 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19269 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19270 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19271 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19272 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19273 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19274 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19275 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19276 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19277 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19278 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19279
19280 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19281 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19282 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19283 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19284 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19285 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19286 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19287 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19288 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19289 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19290 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19291 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19292 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19293 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19294 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19295 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19296 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19297
19298 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19299 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19300 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19301 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19302 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19303 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19304 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19305 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19306 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19307 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19308 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19309 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19310 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19311 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19312 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19313 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019314 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19315 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019316 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19317 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19318 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19319 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19320 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19321 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019322 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19323 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019324 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019325 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019326 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19327 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19328 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19329 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19330 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19331 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019332 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019333 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19334 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19335 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019336 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19337 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19338 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019339 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019340 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019341 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19342 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019343 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019344 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
19345 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
19346
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019347 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19348 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19349 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19350 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19351 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19352 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19353 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19354 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19355 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19356 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19357 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19358 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19359 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19360 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19361 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19362 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19363 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
19364
19365 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19366 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19367 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19368 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19369 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19370 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19371 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19372 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19373 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19374 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19375 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19376 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19377 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19378 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19379 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19380 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
19381
19382 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19383 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19384 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19385 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19386 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19387 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19388 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19389 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19390 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19391 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19392 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19393 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19394 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19395 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19396 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
19397
19398 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19399 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19400 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19401 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19402 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19403 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19404 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19405 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19406 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19407 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19408 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19409 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19410 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19411 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19412 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
19413
19414 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19415 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
19416
19417 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19418 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19419
19420 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19421 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19422 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19423 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19424 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19425 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19426 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19427 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19428 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19429 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19430 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19431 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19432 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19433 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19434 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19435 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
19436
19437 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19438 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19439 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19440 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19441 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19442 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19443 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19444 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19445 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19446 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19447 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19448 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19449 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19450 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19451 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19452 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
19453
19454 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19455 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19456 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19457 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19458 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19459 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19460 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19461 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19462 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19463 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19464 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19465 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19466 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19467 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19468 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19469 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
19470
19471 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19472 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19473 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19474 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19475 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19476 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19477 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19478 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19479 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19480 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19481 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19482 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19483 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19484 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19485 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19486 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19487 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19488 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
19489
19490 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19491 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19492 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19493 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19494 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19495 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19496 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19497 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19498 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19499 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19500 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19501 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19502 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19503 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19504 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19505 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019506 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019507 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
19508
19509 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19510 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19511 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19512 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19513 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19514 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19515 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19516 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19517 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19518 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19519 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19520 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19521 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19522 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19523 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19524 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019525 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019526 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
19527
19528 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19529 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19530 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19531 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19532 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19533 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19534 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19535 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19536 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19537 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19538 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19539 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19540 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19541 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19542 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19543 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019544 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019545 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
19546
19547 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19548 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19549 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19550 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19551 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19552 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19553 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19554 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19555 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19556 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19557 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19558 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19559 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19560 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19561 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19562 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019563 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019564 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
19565
19566 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19567 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19568 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19569 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19570 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19571 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19572 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19573 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19574 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19575 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19576 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19577 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19578 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19579 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19580 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19581 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19582 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
19583
19584 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19585 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19586 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19587 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19588 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19589 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19590 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19591 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19592 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19593 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19594 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19595 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19596 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19597 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19598 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19599 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019600 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019601 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
19602
19603 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19604 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19605 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19606 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19607 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19608 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19609 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19610 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19611 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19612 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19613 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19614 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19615 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19616 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19617 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19618 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019619 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019620 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
19621
19622 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19623 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19624 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19625 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19626 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19627 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19628 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19629 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19630 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19631 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19632 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19633 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19634 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19635 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19636 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19637 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019638 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019639 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
19640
19641 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19642 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19643 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19644 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19645 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19646 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19647 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19648 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19649 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19650 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19651 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19652 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19653 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19654 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19655 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19656 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019657 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019658 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
19659
19660 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19661 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19662 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19663 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19664 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19665 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19666 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19667 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19668 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19669 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19670 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19671 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19672 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19673 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19674 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19675 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19676 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
19677
19678 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19679 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19680 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19681 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19682 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19683 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19684 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19685 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19686 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19687 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19688 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19689 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19690 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19691 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19692 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19693 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019694 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019695 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
19696
19697 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19698 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19699 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19700 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19701 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19702 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19703 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19704 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19705 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19706 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19707 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19708 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19709 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19710 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19711 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19712 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19713 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
19714
19715 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19716 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19717 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19718 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19719 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19720 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19721 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19722 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19723 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19724 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19725 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19726 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19727 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19728 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19729 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19730 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019731 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019732 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
19733
19734 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19735 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19736 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19737 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19738 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19739 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19740 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19741 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19742 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19743 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19744 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19745 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19746 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19747 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19748 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19749 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019750 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019751 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
19752
19753 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19754 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19755 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19756 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19757 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19758 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19759 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19760 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19761 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19762 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19763 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19764 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19765 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19766 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19767 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19768 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019769 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019770 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
19771
19772 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19773 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19774 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19775 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19776 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19777 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19778 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19779 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19780 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19781 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19782 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19783 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19784 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19785 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19786 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19787 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019788 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019789 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
19790
19791 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19792 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19793 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19794 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19795 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19796 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19797 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19798 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19799 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19800 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19801 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19802 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19803 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19804 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19805 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19806 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19807 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019808 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019809 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
19810
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019811 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19812 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19813 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19814 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19815 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19816 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19817 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19818 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19819 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19820 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19821 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19822 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19823 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19824 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19825 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19826 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19827 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
19828
19829 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19830 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19831 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19832 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19833 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19834 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19835 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19836 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19837 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19838 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19839 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19840 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19841 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19842 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19843 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19844 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19845 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019846 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019847 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
19848
19849 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19850 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19851 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19852 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19853 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19854 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19855 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19856 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19857 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19858 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19859 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19860 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19861 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19862 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19863 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19864 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19865 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019866 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019867 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
19868
19869 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19870 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19871 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19872 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19873 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19874 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19875 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19876 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19877 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19878 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19879 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19880 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19881 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19882 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19883 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19884 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19885 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019886 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019887 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
19888
Rohit Kumara5077932017-09-10 22:05:05 +053019889 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19890 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19891 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19892 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19893 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19894 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19895 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19896 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19897 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19898 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19899 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19900 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19901 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19902 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19903 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19904 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19905 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019906 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019907 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
19908
19909 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19910 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19911 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19912 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19913 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19914 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19915 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19916 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19917 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19918 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19919 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19920 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19921 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19922 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19923 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19924 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19925 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
19926
19927 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19928 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19929 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19930 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19931 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19932 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19933 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19934 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19935 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19936 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19937 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19938 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19939 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19940 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19941 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19942 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19943 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019944 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019945 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
19946
19947 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19948 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19949 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19950 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19951 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19952 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19953 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19954 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19955 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19956 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19957 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19958 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19959 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19960 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19961 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19962 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19963 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019964 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019965 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
19966
19967 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19968 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19969 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19970 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19971 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19972 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19973 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19974 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19975 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19976 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19977 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19978 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19979 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19980 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19981 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19982 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19983 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019984 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019985 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
19986
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019987 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
19988 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
19989 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
19990 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
19991 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019992 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019993 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019994 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19995 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19996 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19997 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
19998 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
19999 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20000 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20001 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20002 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20003 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20004 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20005 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20006 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20007 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20008 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020009 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020010 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20011 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20012 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020013 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020014 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20015 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020016 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20017 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20018 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020019 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020020 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20021 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20022 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020023 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020024 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020025 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20026 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20027 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020028 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20029 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20030 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20031 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20032 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20033 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20034 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20035 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20036 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20037 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20038 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020039 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020040 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20041 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20042 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020043 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020044 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020045 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20046 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20047 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020048 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020049 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020050 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20051 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20052 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20053 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20054 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020055 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20056 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20057 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20058 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020059 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020060
20061 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20062 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20063 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20064 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20065 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20066 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20067 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20068 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20069 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20070 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20071 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20072 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20073 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20074 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20075 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20076 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020077 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20078 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20079 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20080 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020081 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20082 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20083 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20084 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20085 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020086 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20087 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20088 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20089 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20090 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20091 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020092 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20093 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020094
20095 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20096 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20097 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20098 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20099 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20100 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20101 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20102 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20103 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20104 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20105 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20106 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20107 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20108 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20109 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20110 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020111 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20112 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20113 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20114 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020115 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20116 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20117 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20118 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20119 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020120 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20121 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20122 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20123 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20124 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20125 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020126 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20127 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020128
20129 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20130 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20131 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20132 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20133 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20134 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20135 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20136 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20137 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20138 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20139 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20140 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20141 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20142 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20143 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20144 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020145 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20146 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20147 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20148 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020149 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20150 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20151 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20152 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20153 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020154 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20155 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20156 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20157 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20158 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20159 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020160 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20161 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020162
20163 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20164 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20165 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20166 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20167 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20168 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20169 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20170 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20171 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20172 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20173 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20174 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20175 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20176 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20177 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20178 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020179 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20180 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20181 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20182 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020183 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20184 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20185 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20186 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20187 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020188 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20189 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20190 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20191 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20192 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20193 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020194 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20195 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020196
20197 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20198 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20199 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20200 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20201 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20202 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20203 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20204 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20205 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20206 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20207 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20208 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20209 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20210 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20211 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20212 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020213 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20214 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20215 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20216 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020217 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20218 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20219 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20220 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20221 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020222 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20223 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20224 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20225 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20226 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20227 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020228 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20229 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020230
20231 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20232 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20233 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20234 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20235 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20236 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20237 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20238 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20239 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20240 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20241 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20242 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20243 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20244 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20245 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20246 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020247 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20248 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20249 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20250 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020251 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20252 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20253 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20254 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20255 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020256 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20257 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20258 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20259 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20260 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20261 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020262 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20263 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020264
20265 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20266 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20267 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20268 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20269 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20270 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20271 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20272 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20273 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20274 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20275 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20276 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20277 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20278 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20279 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20280 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020281 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20282 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20283 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20284 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020285 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20286 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20287 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20288 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20289 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20290 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020291 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20292 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20293 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20294 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20295 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20296 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020297 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20298 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020299
20300 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20301 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20302 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20303 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20304 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20305 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20306 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20307 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020308 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20309 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20310 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20311 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020312 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20313 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20314 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20315 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20316 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20317 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020318 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20319 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20320 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20321 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20322 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20323 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020324 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20325 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020326
Laxminath Kasam38070be2017-08-17 18:21:59 +053020327 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20328 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20329 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20330 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20331 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20332 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20333 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20334 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020335 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20336 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20337 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20338 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20339 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20340 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20341
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020342 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20343 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20344 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20345 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020346 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020347 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20348 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20349 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20350 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20351 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20352 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20353 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20354 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20355 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20356 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20357 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20358 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20359 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20360 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20361 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20362 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020363 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20364 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20365 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20366 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020367 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20368 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20369 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20370 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20371 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20372 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020373 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20374 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20375 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20376 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20377 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20378 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020379 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20380 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020381
Derek Chen07c6d1c2018-07-05 10:39:25 -070020382 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20383 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20384 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20385 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20386 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20387 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20388 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20389 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20390 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20391 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20392 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20393 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20394 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20395 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20396 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20397 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20398 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20399 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20400 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20401 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20402 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20403 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
20404
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020405 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20406 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20407 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20408 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20409 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20410 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020411 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020412
Asish Bhattacharya34504582017-08-08 12:55:01 +053020413 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20414 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20415 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20416 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20417 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20418 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20419 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20420 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20421 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20422 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20423 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20424 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20425 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20426 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20427 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20428 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20429 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020430 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20431 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20432 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20433 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20434 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20435 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020436 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20437 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20438 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20439 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20440 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20441 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020442 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20443 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020444
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020445 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20446 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20447 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20448 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20449 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20450 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20451
20452 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20453 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20454 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20455 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20456 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20457 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20458
20459 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20460 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20461 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20462 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20463 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20464 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20465
20466 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20467 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20468 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20469 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20470 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20471 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20472
20473 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20474 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20475 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20476 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20477 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20478 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20479
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020480 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20481 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20482 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20483 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20484 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20485 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20486 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20487 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20488 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20489 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20490 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20491 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20492 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20493 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20494 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20495 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20496 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20497 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
20498
20499 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20500 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20501 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20502 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20503 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20504 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20505 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20506 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20507 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20508 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20509 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20510 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20511 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20512 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20513 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20514 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20515 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20516 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
20517
20518 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20519 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20520 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20521 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20522 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20523 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20524 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20525 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20526 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20527 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20528 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20529 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20530 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20531 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20532 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20533 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20534 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
20535
20536 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20537 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20538 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20539 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20540 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20541 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20542 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20543 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20544 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20545 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20546 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20547 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20548 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20549 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20550 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20551 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20552 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
20553
20554 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20555 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20556 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020557 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020558 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20559 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20560 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020561 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20562 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020563 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20564 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020565 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020566 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20567 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020568 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020569 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20570 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20571 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020572 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20573 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020574 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20575 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20576 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20577
20578 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
20579 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
20580 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020581 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020582 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
20583 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
20584 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020585 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
20586 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020587 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
20588 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020589 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020590 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
20591 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20592 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
20593 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
20594 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
20595 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
20596 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
20597 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
20598 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020599 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020600 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020601 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
20602 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
20603 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
20604 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020605 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020606 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
20607 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020608
20609 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20610 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20611 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20612 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20613 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20614 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20615 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20616 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20617 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20618 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20619 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20620 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20621 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20622 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20623 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20624 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020625 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020626 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
20627
20628 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20629 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20630 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20631 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20632 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20633 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20634 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20635 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20636 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20637 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20638 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20639 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20640 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20641 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20642 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20643 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020644 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020645 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
20646
20647 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20648 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20649 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20650 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20651 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20652 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20653 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20654 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20655 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20656 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20657 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20658 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20659 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20660 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20661 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20662 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20663 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
20664
20665 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20666 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20667 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20668 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20669 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20670 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20671 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20672 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20673 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20674 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20675 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20676 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20677 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20678 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20679 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20680 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20681 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
20682
Rohit Kumara5077932017-09-10 22:05:05 +053020683 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20684 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20685 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20686 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20687 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20688 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20689 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20690 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20691 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20692 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20693 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20694 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20695 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20696 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20697 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20698 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20699 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
20700
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020701 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20702 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20703 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20704 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20705 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20706 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
20707
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020708 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
20709 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20710 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20711 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
20712
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020713 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20714 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20715 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20716 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20717 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20718 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
20719
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020720 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
20721 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020722 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20723 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20724 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20725 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
20726
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020727 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
20728 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020729 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20730 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20731 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20732 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
20733
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020734 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20735 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020736 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20737 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20738 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20739 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
20740
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020741 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
20742 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020743 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20744 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20745 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20746 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
20747
Karthikeyan Mani57550082018-05-03 18:43:58 -070020748 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
20749 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20750 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
20751 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20752 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20753 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
20754
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020755 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20756 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20757 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20758 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20759 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020760 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
20761
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020762 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20763 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20764 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20765 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20766 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20767 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
20768
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020769 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20770 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020771 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20772 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20773 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20774 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
20775
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020776 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20777 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020778 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20779 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20780 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20781 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
20782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020783 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20784 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020785 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20786 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20787 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20788 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
20789
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020790 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20791 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020792 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20793 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20794 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20795 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
20796
Rohit Kumara5077932017-09-10 22:05:05 +053020797 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20798 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053020799 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20800 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20801 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20802 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
20803
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020804 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20805 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20806 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20807 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20808 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20809 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
20810 {"HDMI", NULL, "HDMI_DL_HL"},
20811
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020812 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020813 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20814 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20815 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080020816 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020817 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
20818
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020819 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020820 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20821 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20822 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20823 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20824 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
20825
20826 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20827 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20828 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20829 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20830 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20831 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
20832
20833 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20834 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20835 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20836 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20837 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20838 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
20839
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020840 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020841 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20842 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20843 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20844 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20845 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
20846
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020847 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020848 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20849 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20850 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20851 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
20852
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020853 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020854 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20855 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20856 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20857 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
20858
20859 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20860 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
20861
20862 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20863 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20864 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20865 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020866 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020867 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070020868 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020869 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020870 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
20871 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
20872
20873 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20874 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20875 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20876 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20877 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
20878 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20879 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
20880 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
20881 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
20882 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20883
20884 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20885 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20886 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20887 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20888
20889 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20890 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20891 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20892 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20893
20894 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20895 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20896 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20897 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20898
20899 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20900 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20901 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20902 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20903
20904 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20905 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20906 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20907 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20908
20909 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20910 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20911 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20912 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20913
20914 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20915 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20916 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20917 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20918
Laxminath Kasam38070be2017-08-17 18:21:59 +053020919 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20920 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20921 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20922 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20923 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
20924 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20925 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
20926 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
20927 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
20928 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070020929
20930 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20931 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20932 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20933 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20934
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020935 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20936 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20937 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20938 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20939
20940 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20941 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20942 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20943 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20944
20945 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20946 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20947 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20948 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20949
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020950 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20951 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20952 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20953 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20954
20955 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20956 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20957 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20958 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080020959
20960 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20961 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20962 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20963 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20964 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20965 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20966 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20967 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20968
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020969 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
20970 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
20971 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
20972 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
20973 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
20974 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
20975 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
20976 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020977 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020978 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020979 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
20980 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
20981 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020982 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
20983 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020984
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020985 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
20986 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
20987 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
20988 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
20989 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
20990 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
20991 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
20992 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
20993 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
20994 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
20995 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
20996 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
20997 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
20998 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
20999 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021000 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021001 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
21002 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21003
21004 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21005 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21006 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21007 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21008 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21009 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21010 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21011 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21012 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21013 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21014 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21015 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21016 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21017 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21018 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021019 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021020 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21021
21022 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21023 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21024 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21025 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21026 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21027 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21028 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21029 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21030 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21031 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21032 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21033 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21034 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21035 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021036 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021037 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21038 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21039
21040 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21041 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21042 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21043 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21044 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21045 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21046 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21047 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21048 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21049 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21050 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21051 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21052 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21053 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21054 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021055 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21056 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21057 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021058 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21059 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21060 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21061 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21062 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21063 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21064 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21065 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021066 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21067 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021068 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21069
21070 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21071 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21072 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21073 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21074 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21075 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21076 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21077 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021078 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21079 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021080 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21081
21082
21083 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21084 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21085 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21086 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21087 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21088 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21089 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21090 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021091 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21092 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021093 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21094
21095
21096 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21097 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21098 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21099 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21100 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21101 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21102 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21103 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021104 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21105 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021106 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21107
21108 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21109 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21110 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21111 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21112 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21113 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21114 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21115 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021116 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21117 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021118 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21119
21120 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21121 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21122 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21123 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21124 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21125 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021126 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21127 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021128 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21129
21130 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21131 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21132 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21133 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21134 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21135 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021136 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21137 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021138 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21139
21140 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21141 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21142 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21143 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21144 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21145 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021146 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21147 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021148 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21149
21150
21151 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21152 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21153 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21154 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21155 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21156 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21157 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21158 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21159 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21160 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21161 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021162 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021163 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21164 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21165 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21166 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21167 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21168 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21169
21170 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21171 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21172 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21173 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21174 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21175 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21176 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21177 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21178 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21179 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21180 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21181 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021182 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21183 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021184 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021185 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021186 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021187 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21188 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21189 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21190 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21191
21192 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21193 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21194 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21195 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21196 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21197 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21198 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21199 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21200 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21201 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21202 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21203
21204 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21205 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021206 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21207 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021208 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21209 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21210 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21211 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21212 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21213 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21214 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21215 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21216 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21217 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21218
21219 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21220 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21221 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21222 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21223 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21224 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21225 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21226 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21227 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21228 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21229 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21230 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21231 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21232 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21233 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21234 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
21235 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21236 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21237 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21238 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
21239 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21240 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21241 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21242 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21243 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21244 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21245 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21246 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21247 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21248 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21249 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21250 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021251 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21252 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21253 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21254 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21255 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21256 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21257 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21258 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021259
21260 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21261 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21262 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21263 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21264 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21265 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21266 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21267 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21268 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21269 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21270 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21271 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21272 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21273 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21274 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21275 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021276 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21277 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21278 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21279 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021280 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
21281
21282 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21283 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21284 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21285 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21286 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21287 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21288 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21289 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21290 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21291 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21292 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21293 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21294 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21295 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21296 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21297 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021298 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21299 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21300 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21301 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021302 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
21303
21304 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21305 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21306 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21307 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21308 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21309 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21310 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21311 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21312 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21313 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21314 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21315 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21316 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21317 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21318 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21319 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021320 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21321 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21322 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21323 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021324 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
21325
21326 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21327 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21328 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21329 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21330 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21331 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21332 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21333 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21334 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21335 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21336 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21337 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21338 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21339 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21340 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21341 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021342 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21343 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21344 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21345 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021346 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
21347
21348 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21349 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21350 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21351 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21352 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21353 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21354 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21355 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21356 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21357 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21358 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21359 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21360 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21361 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21362 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21363 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021364 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21365 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21366 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21367 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021368 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
21369
21370 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21371 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21372 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21373 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21374 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21375 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21376 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21377 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21378 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21379 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21380 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21381 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21382 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21383 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21384 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21385 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021386 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21387 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21388 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21389 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021390 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
21391
21392 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21393 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21394 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21395 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21396 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21397 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21398 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21399 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21400 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21401 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21402 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21403 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21404 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21405 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21406 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21407 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021408 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21409 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21410 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21411 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021412 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
21413
21414 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21415 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21416 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21417 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21418 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21419 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21420 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21421 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21422 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21423 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21424 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21425 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21426 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21427 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21428 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21429 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021430 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21431 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21432 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21433 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021434 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
21435
21436 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21437 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21438 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21439 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21440 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21441 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21442 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21443 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21444 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21445 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21446 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21447 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21448 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21449 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21450 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21451 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021452 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21453 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21454 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21455 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021456 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
21457
21458 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21459 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21460 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21461 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21462 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21463 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21464 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21465 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21466 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21467 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21468 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21469 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21470 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21471 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21472 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21473 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021474 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21475 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21476 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21477 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021478 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
21479
21480 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21481 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21482 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21483 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21484 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21485 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21486 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21487 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21488 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21489 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21490 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21491 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21492 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21493 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21494 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21495 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021496 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21497 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21498 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21499 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021500 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
21501
21502 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21503 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21504 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21505 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21506 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21507 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21508 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21509 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21510 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21511 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21512 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21513 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21514 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21515 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21516 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21517 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021518 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21519 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21520 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21521 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021522 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
21523
21524 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21525 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21526 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21527 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21528 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21529 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21530 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21531 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21532 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21533 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21534 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21535 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21536 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21537 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21538 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21539 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021540 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21541 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21542 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21543 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021544 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
21545
21546 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21547 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21548 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21549 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21550 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21551 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21552 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21553 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21554 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21555 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21556 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21557 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21558 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21559 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21560 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21561 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021562 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21563 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21564 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21565 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021566 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
21567
21568 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21569 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21570 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21571 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21572 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21573 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21574 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21575 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21576 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21577 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21578 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21579 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21580 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21581 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21582 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21583 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021584 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21585 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21586 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21587 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021588 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
21589
21590 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21591 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21592 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21593 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21594 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21595 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21596 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21597 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21598 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21599 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21600 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21601 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21602 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21603 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21604 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21605 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021606 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21607 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21608 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21609 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021610 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
21611
Rohit Kumara5077932017-09-10 22:05:05 +053021612 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21613 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21614 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21615 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21616 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21617 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21618 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21619 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21620 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21621 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21622 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21623 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21624 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21625 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21626 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21627 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21628 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21629 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21630 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21631 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021632 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021633
21634 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21635 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21636 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21637 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21638 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21639 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21640 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21641 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21642 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21643 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21644 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21645 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21646 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21647 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21648 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21649 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21650 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21651 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21652 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21653 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021654 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021655
21656 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21657 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21658 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21659 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21660 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21661 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21662 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21663 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21664 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21665 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21666 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21667 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21668 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21669 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21670 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21671 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21672 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21673 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21674 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21675 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021676 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021677
21678 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21679 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21680 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21681 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21682 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21683 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21684 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21685 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21686 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21687 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21688 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21689 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21690 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21691 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21692 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21693 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21694 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21695 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21696 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21697 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021698 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021699
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021700 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21701 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21702 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21703 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021704 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021705 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21706 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21707 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21708 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21709 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21710 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
21711
21712 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21713 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21714 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21715 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021716 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021717 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21718 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21719 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21720 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21721 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21722 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
21723
21724 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21725 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21726 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21727 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21728 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21729 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21730 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21731 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21732 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021733 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021734 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21735 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21736 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21737 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21738 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021739 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021740 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21741 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
21742 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21743 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21744 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
21745 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21746 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
21747 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
21748 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
21749 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
21750
21751
21752 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21753 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21754 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21755 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21756 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021757 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021758 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
21759
21760 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21761 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21762 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021763 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021764 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
21765
21766 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21767 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21768 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21769 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
21770
21771 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21772 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21773 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21774 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
21775
Rohit Kumara5077932017-09-10 22:05:05 +053021776 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21777 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21778 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21779 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
21780
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021781 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21782 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21783 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21784 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21785 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21786 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21787 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21788 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021789 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021790 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
21791 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21792 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21793 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21794 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21795 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21796 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21797 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21798 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21799 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21800 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
21801
21802 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21803 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21804 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21805 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21806 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21807 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21808 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21809 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21810 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21811 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21812 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21813 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
21814
21815 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21816 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21817 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21818 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21819 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21820 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21821 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21822 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21823 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21824 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21825 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21826 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
21827
kunleizdf5a00a2017-11-27 15:27:36 +080021828 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21829 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021830 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080021831
21832 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21833 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021834 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080021835
21836 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21837 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021838 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
21839
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021840 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
21841 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021842 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21843 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21844 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21845 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
21846
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021847 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
21848 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021849 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21850 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21851 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21852 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
21853
21854 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21855 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21856 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21857 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
21858 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21859 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21860 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
21861 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
21862 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21863 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
21864 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
21865 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
21866 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
21867
21868 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21869 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21870 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21871 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21872 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21873 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21874 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21875 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21876 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21877 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21878 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21879 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21880 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
21881
21882 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21883 {"HDMI", NULL, "HDMI_RX Port Mixer"},
21884
21885 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21886 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
21887
Karthikeyan Mani57550082018-05-03 18:43:58 -070021888 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
21889 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
21890
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021891 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21892 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
21893
21894 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21895 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21896 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
21897
21898 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21899 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21900 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21901 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021902 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021903 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21904 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21905 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21906 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021907 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021908 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
21909
21910 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21911 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21912 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21913 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021914 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021915 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21916 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21917 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021918 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021919 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
21920
21921 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21922 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21923 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21924 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021925 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021926 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21927 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21928 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
21929
21930 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21931 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21932 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21933 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021934 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021935 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21936 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21937 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21938 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21939 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
21940
Rohit Kumara5077932017-09-10 22:05:05 +053021941 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21942 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21943 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21944 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21945 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21946 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21947 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21948 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
21949
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021950 /* Backend Enablement */
21951
21952 {"BE_OUT", NULL, "PRI_I2S_RX"},
21953 {"BE_OUT", NULL, "SEC_I2S_RX"},
21954 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
21955 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
21956 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
21957 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
21958 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
21959 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
21960 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
21961 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
21962 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
21963 {"BE_OUT", NULL, "USB_AUDIO_RX"},
21964 {"BE_OUT", NULL, "HDMI"},
21965 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070021966 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021967 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
21968 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021969 {"BE_OUT", NULL, "MI2S_RX"},
21970 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
21971 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
21972 {"BE_OUT", NULL, "TERT_MI2S_RX"},
21973 {"BE_OUT", NULL, "SEC_MI2S_RX"},
21974 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
21975 {"BE_OUT", NULL, "PRI_MI2S_RX"},
21976 {"BE_OUT", NULL, "INT0_MI2S_RX"},
21977 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053021978 {"BE_OUT", NULL, "INT2_MI2S_RX"},
21979 {"BE_OUT", NULL, "INT3_MI2S_RX"},
21980 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021981 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
21982 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
21983 {"BE_OUT", NULL, "INT_FM_RX"},
21984 {"BE_OUT", NULL, "PCM_RX"},
21985 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
21986 {"BE_OUT", NULL, "AUX_PCM_RX"},
21987 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
21988 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
21989 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021990 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021991 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
21992 {"BE_OUT", NULL, "INT_FM_RX"},
21993 {"BE_OUT", NULL, "PCM_RX"},
21994 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
21995 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
21996 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
21997 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
21998 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
21999 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22000 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22001 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22002 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22003 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22004 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
22005 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22006 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22007 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22008 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22009 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22010 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22011 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22012 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22013 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022014 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22015 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22016 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22017 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022018 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22019 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022020 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22021 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22022 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22023 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22024 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22025 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22026 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22027 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022028
22029 {"PRI_I2S_TX", NULL, "BE_IN"},
22030 {"MI2S_TX", NULL, "BE_IN"},
22031 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22032 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22033 {"PRI_MI2S_TX", NULL, "BE_IN"},
22034 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022035 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022036 {"INT2_MI2S_TX", NULL, "BE_IN"},
22037 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022038 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022039 {"INT5_MI2S_TX", NULL, "BE_IN"},
22040 {"SEC_MI2S_TX", NULL, "BE_IN"},
22041 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22042 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22043 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22044 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22045 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22046 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22047 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22048 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22049 {"SLIMBUS_8_TX", NULL, "BE_IN" },
22050 {"USB_AUDIO_TX", NULL, "BE_IN" },
22051 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22052 {"INT_FM_TX", NULL, "BE_IN"},
22053 {"PCM_TX", NULL, "BE_IN"},
22054 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22055 {"BE_OUT", NULL, "STUB_RX"},
22056 {"STUB_TX", NULL, "BE_IN"},
22057 {"STUB_1_TX", NULL, "BE_IN"},
22058 {"BE_OUT", NULL, "AUX_PCM_RX"},
22059 {"AUX_PCM_TX", NULL, "BE_IN"},
22060 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22061 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22062 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022063 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022064 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22065 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22066 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22067 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022068 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22069 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022070 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22071 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22072 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22073 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22074 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022075 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22076 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022077 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22078 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22079 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22080 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22081 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22082 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22083 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22084 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22085 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22086 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22087 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22088 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22089 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22090 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22091 {"TERT_TDM_TX_3", NULL, "BE_IN"},
22092 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22093 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22094 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22095 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022096 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22097 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22098 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22099 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022100 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22101 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22102 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22103 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22104 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022105 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22106 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22107 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22108 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22109 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22110 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022111 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22112 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022113};
22114
22115static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22116 struct snd_pcm_hw_params *params)
22117{
22118 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22119 unsigned int be_id = rtd->dai_link->id;
22120
22121 if (be_id >= MSM_BACKEND_DAI_MAX) {
22122 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22123 return -EINVAL;
22124 }
22125
22126 mutex_lock(&routing_lock);
22127 msm_bedais[be_id].sample_rate = params_rate(params);
22128 msm_bedais[be_id].channel = params_channels(params);
22129 msm_bedais[be_id].format = params_format(params);
22130 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22131 __func__, msm_bedais[be_id].sample_rate,
22132 msm_bedais[be_id].format, be_id);
22133 mutex_unlock(&routing_lock);
22134 return 0;
22135}
22136
22137static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22138{
22139 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22140 unsigned int be_id = rtd->dai_link->id;
22141 int i, session_type, path_type, topology;
22142 struct msm_pcm_routing_bdai_data *bedai;
22143 struct msm_pcm_routing_fdai_data *fdai;
22144
22145 pr_debug("%s: substream->pcm->id:%s\n",
22146 __func__, substream->pcm->id);
22147
22148 if (be_id >= MSM_BACKEND_DAI_MAX) {
22149 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22150 return -EINVAL;
22151 }
22152
22153 bedai = &msm_bedais[be_id];
22154 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22155 0 : 1);
22156 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22157 path_type = ADM_PATH_PLAYBACK;
22158 else
22159 path_type = ADM_PATH_LIVE_REC;
22160
22161 mutex_lock(&routing_lock);
22162 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22163 if (!is_mm_lsm_fe_id(i))
22164 continue;
22165 fdai = &fe_dai_map[i][session_type];
22166 if (fdai->strm_id != INVALID_SESSION) {
22167 int idx;
22168 int port_id;
22169 unsigned long copp =
22170 session_copp_map[i][session_type][be_id];
22171 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22172 if (test_bit(idx, &copp))
22173 break;
22174 fdai->be_srate = bedai->sample_rate;
22175 port_id = bedai->port_id;
22176 topology = adm_get_topology_for_port_copp_idx(port_id,
22177 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022178 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022179 adm_close(bedai->port_id, fdai->perf_mode, idx);
22180 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22181 __func__, copp, i, session_type, be_id,
22182 topology);
22183 clear_bit(idx,
22184 &session_copp_map[i][session_type][be_id]);
22185 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22186 (bedai->passthr_mode[i] == LEGACY_PCM))
22187 msm_pcm_routing_deinit_pp(bedai->port_id,
22188 topology);
22189 }
22190 }
22191
22192 bedai->active = 0;
22193 bedai->sample_rate = 0;
22194 bedai->channel = 0;
22195 for (i = 0; i < MSM_FRONTEND_DAI_MAX; i++) {
22196 if (bedai->passthr_mode[i] != LISTEN)
22197 bedai->passthr_mode[i] = LEGACY_PCM;
22198 }
22199 mutex_unlock(&routing_lock);
22200
22201 return 0;
22202}
22203
22204static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22205{
22206 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22207 unsigned int be_id = rtd->dai_link->id;
22208 int i, path_type, topology;
22209 int session_type = INVALID_SESSION;
22210 struct msm_pcm_routing_bdai_data *bedai;
22211 u32 channels, sample_rate;
22212 uint16_t bits_per_sample = 16, voc_path_type;
22213 struct msm_pcm_routing_fdai_data *fdai;
22214 u32 session_id;
22215 struct media_format_info voc_be_media_format;
22216 bool is_lsm;
22217
22218 pr_debug("%s: substream->pcm->id:%s\n",
22219 __func__, substream->pcm->id);
22220
22221 if (be_id >= MSM_BACKEND_DAI_MAX) {
22222 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22223 return -EINVAL;
22224 }
22225
22226 bedai = &msm_bedais[be_id];
22227
22228 mutex_lock(&routing_lock);
22229 if (bedai->active == 1)
22230 goto done; /* Ignore prepare if back-end already active */
22231
22232 /* AFE port is not active at this point. However, still
22233 * go ahead setting active flag under the notion that
22234 * QDSP6 is able to handle ADM starting before AFE port
22235 * is started.
22236 */
22237 bedai->active = 1;
22238
22239 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22240 if (!(is_mm_lsm_fe_id(i) &&
22241 route_check_fe_id_adm_support(i)))
22242 continue;
22243
22244 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
22245 if (bedai->passthr_mode[i] != LEGACY_PCM)
22246 path_type = ADM_PATH_COMPRESSED_RX;
22247 else
22248 path_type = ADM_PATH_PLAYBACK;
22249 session_type = SESSION_TYPE_RX;
22250 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +020022251 if ((bedai->passthr_mode[i] != LEGACY_PCM) &&
22252 (bedai->passthr_mode[i] != LISTEN))
22253 path_type = ADM_PATH_COMPRESSED_TX;
22254 else
22255 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022256 session_type = SESSION_TYPE_TX;
22257 }
22258
22259 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
22260 (i <= MSM_FRONTEND_DAI_LSM8);
22261 fdai = &fe_dai_map[i][session_type];
22262 if (fdai->strm_id != INVALID_SESSION) {
22263 int app_type, app_type_idx, copp_idx, acdb_dev_id;
22264
22265 if (session_type == SESSION_TYPE_TX &&
22266 fdai->be_srate &&
22267 (fdai->be_srate != bedai->sample_rate)) {
22268 pr_debug("%s: flush strm %d diff BE rates\n",
22269 __func__,
22270 fdai->strm_id);
22271
22272 if (fdai->event_info.event_func)
22273 fdai->event_info.event_func(
22274 MSM_PCM_RT_EVT_BUF_RECFG,
22275 fdai->event_info.priv_data);
22276 fdai->be_srate = 0; /* might not need it */
22277 }
22278 bits_per_sample = msm_routing_get_bit_width(
22279 bedai->format);
22280
22281 app_type =
22282 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
22283 if (app_type && is_lsm) {
22284 app_type_idx =
22285 msm_pcm_routing_get_lsm_app_type_idx(app_type);
22286 sample_rate =
22287 fe_dai_app_type_cfg[i][session_type][be_id]
22288 .sample_rate;
22289 bits_per_sample =
22290 lsm_app_type_cfg[app_type_idx].bit_width;
22291 } else if (app_type) {
22292 app_type_idx =
22293 msm_pcm_routing_get_app_type_idx(app_type);
22294 sample_rate =
22295 fe_dai_app_type_cfg[i][session_type]
22296 [be_id].sample_rate;
22297 bits_per_sample =
22298 app_type_cfg[app_type_idx].bit_width;
22299 } else
22300 sample_rate = bedai->sample_rate;
22301 /*
22302 * check if ADM needs to be configured with different
22303 * channel mapping than backend
22304 */
22305 if (!bedai->adm_override_ch)
22306 channels = bedai->channel;
22307 else
22308 channels = bedai->adm_override_ch;
22309 acdb_dev_id =
22310 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
22311 topology = msm_routing_get_adm_topology(i, session_type,
22312 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020022313
22314 if ((bedai->passthr_mode[i] ==
22315 COMPRESSED_PASSTHROUGH_DSD)
22316 || (bedai->passthr_mode[i] ==
22317 COMPRESSED_PASSTHROUGH_GEN)
22318 || (bedai->passthr_mode[i] ==
22319 COMPRESSED_PASSTHROUGH_IEC61937))
22320 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
22321
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022322 copp_idx = adm_open(bedai->port_id, path_type,
22323 sample_rate, channels, topology,
22324 fdai->perf_mode, bits_per_sample,
22325 app_type, acdb_dev_id);
22326 if ((copp_idx < 0) ||
22327 (copp_idx >= MAX_COPPS_PER_PORT)) {
22328 pr_err("%s: adm open failed\n", __func__);
22329 mutex_unlock(&routing_lock);
22330 return -EINVAL;
22331 }
22332 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
22333 __func__, i, session_type, be_id);
22334 set_bit(copp_idx,
22335 &session_copp_map[i][session_type][be_id]);
22336
22337 if (msm_is_resample_needed(
22338 sample_rate,
22339 bedai->sample_rate))
22340 adm_copp_mfc_cfg(
22341 bedai->port_id, copp_idx,
22342 bedai->sample_rate);
22343
22344 msm_pcm_routing_build_matrix(i, session_type, path_type,
22345 fdai->perf_mode,
22346 bedai->passthr_mode[i]);
22347 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22348 (bedai->passthr_mode[i] == LEGACY_PCM))
22349 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
22350 topology, channels);
22351 }
22352 }
22353
22354 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22355 session_id = msm_pcm_routing_get_voc_sessionid(i);
22356 if (session_id) {
22357 pr_debug("%s voice session_id: 0x%x\n", __func__,
22358 session_id);
22359
22360 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22361 voc_path_type = RX_PATH;
22362 else
22363 voc_path_type = TX_PATH;
22364
22365 voc_set_route_flag(session_id, voc_path_type, 1);
22366
22367 memset(&voc_be_media_format, 0,
22368 sizeof(struct media_format_info));
22369
22370 voc_be_media_format.port_id = bedai->port_id;
22371 voc_be_media_format.num_channels = bedai->channel;
22372 voc_be_media_format.sample_rate = bedai->sample_rate;
22373 voc_be_media_format.bits_per_sample = bedai->format;
22374 /* Defaulting this to 1 for voice call usecases */
22375 voc_be_media_format.channel_mapping[0] = 1;
22376
22377 voc_set_device_config(session_id, voc_path_type,
22378 &voc_be_media_format);
22379
22380 if (voc_get_route_flag(session_id, RX_PATH) &&
22381 voc_get_route_flag(session_id, TX_PATH))
22382 voc_enable_device(session_id);
22383 }
22384 }
22385
22386 /* Check if backend is an external ec ref port and set as needed */
22387 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
22388
22389 memset(&voc_be_media_format, 0,
22390 sizeof(struct media_format_info));
22391
22392 /* Get format info for ec ref port from msm_bedais[] */
22393 voc_be_media_format.port_id = bedai->port_id;
22394 voc_be_media_format.num_channels = bedai->channel;
22395 voc_be_media_format.bits_per_sample = bedai->format;
22396 voc_be_media_format.sample_rate = bedai->sample_rate;
22397 /* Defaulting this to 1 for voice call usecases */
22398 voc_be_media_format.channel_mapping[0] = 1;
22399 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
22400 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
22401 __func__, voc_be_media_format.port_id,
22402 voc_be_media_format.num_channels,
22403 voc_be_media_format.bits_per_sample,
22404 voc_be_media_format.sample_rate);
22405 }
22406
22407done:
22408 mutex_unlock(&routing_lock);
22409
22410 return 0;
22411}
22412
22413static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
22414 int fe_id)
22415{
22416 int index, topo_id, be_idx;
22417 unsigned long pp_config = 0;
22418 bool mute_on;
22419 int latency;
22420 bool compr_passthr_mode = true;
22421
22422 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
22423
22424 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
22425 pr_err("%s: Device pp params on invalid port %d\n",
22426 __func__, port_id);
22427 return -EINVAL;
22428 }
22429
22430 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22431 if (port_id == msm_bedais[be_idx].port_id)
22432 break;
22433 }
22434
22435 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22436 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22437 return -EINVAL;
22438 }
22439
22440 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22441 if (msm_bedais_pp_params[index].port_id == port_id)
22442 break;
22443 }
22444 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22445 pr_err("%s: Invalid backend pp params index %d\n",
22446 __func__, index);
22447 return -EINVAL;
22448 }
22449
22450 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
22451 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
22452 pr_err("%s: Invalid passthrough topology 0x%x\n",
22453 __func__, topo_id);
22454 return -EINVAL;
22455 }
22456
22457 if ((msm_bedais[be_idx].passthr_mode[fe_id] == LEGACY_PCM) ||
22458 (msm_bedais[be_idx].passthr_mode[fe_id] == LISTEN))
22459 compr_passthr_mode = false;
22460
22461 pp_config = msm_bedais_pp_params[index].pp_params_config;
22462 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
22463 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22464 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
22465 mute_on = msm_bedais_pp_params[index].mute_on;
22466 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22467 adm_send_compressed_device_mute(port_id,
22468 copp_idx,
22469 mute_on);
22470 }
22471 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
22472 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22473 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
22474 &pp_config);
22475 latency = msm_bedais_pp_params[index].latency;
22476 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22477 adm_send_compressed_device_latency(port_id,
22478 copp_idx,
22479 latency);
22480 }
22481 return 0;
22482}
22483
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022484static uint32_t msm_routing_get_topology(size_t data_size, void *data)
22485{
22486 uint32_t topology = NULL_COPP_TOPOLOGY;
22487 void *cal_info = NULL;
22488 uint32_t size = 0;
22489
22490 /* Retrieve cal_info size from cal data*/
22491 size = data_size - sizeof(struct audio_cal_type_basic);
22492 cal_info = kzalloc(size, GFP_KERNEL);
22493
22494 if (!cal_info)
22495 goto done;
22496
22497 memcpy(cal_info,
22498 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
22499
22500 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
22501 kfree(cal_info);
22502 cal_info = NULL;
22503
22504done:
22505 pr_debug("%s: Using topology %d\n", __func__, topology);
22506
22507 return topology;
22508}
22509
22510static void msm_routing_load_topology(size_t data_size, void *data)
22511{
22512 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022513 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022514
22515 topology_id = msm_routing_get_topology(data_size, data);
22516 if (topology_id != NULL_COPP_TOPOLOGY)
22517 ret = q6core_load_unload_topo_modules(topology_id,
22518 CORE_LOAD_TOPOLOGY);
22519 if (ret < 0)
22520 pr_debug("%s %d load topology failed\n",
22521 __func__, topology_id);
22522
22523}
22524
22525static void msm_routing_unload_topology(uint32_t topology_id)
22526{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022527 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022528
22529 if (topology_id != NULL_COPP_TOPOLOGY)
22530 ret = q6core_load_unload_topo_modules(topology_id,
22531 CORE_UNLOAD_TOPOLOGY);
22532 if (ret < 0)
22533 pr_debug("%s %d unload topology failed\n",
22534 __func__, topology_id);
22535
22536}
22537
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022538static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22539 struct snd_ctl_elem_value *ucontrol)
22540{
22541 int pp_id = ucontrol->value.integer.value[0];
22542 int port_id = 0;
22543 int index, be_idx, i, topo_id, idx;
22544 bool mute;
22545 int latency;
22546 bool compr_passthr_mode = true;
22547
22548 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
22549
22550 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22551 port_id = msm_bedais[be_idx].port_id;
22552 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
22553 break;
22554 }
22555
22556 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22557 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22558 return -EINVAL;
22559 }
22560
22561 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22562 if (msm_bedais_pp_params[index].port_id == port_id)
22563 break;
22564 }
22565 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22566 pr_err("%s: Invalid pp params backend index %d\n",
22567 __func__, index);
22568 return -EINVAL;
22569 }
22570
22571 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
22572 MSM_FRONTEND_DAI_MM_SIZE) {
22573 if ((msm_bedais[be_idx].passthr_mode[i] == LEGACY_PCM) ||
22574 (msm_bedais[be_idx].passthr_mode[i] == LISTEN))
22575 compr_passthr_mode = false;
22576
22577 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22578 unsigned long copp =
22579 session_copp_map[i]
22580 [SESSION_TYPE_RX][be_idx];
22581 if (!test_bit(idx, &copp))
22582 continue;
22583 topo_id = adm_get_topology_for_port_copp_idx(port_id,
22584 idx);
22585 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
22586 continue;
22587 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
22588 __func__, port_id, copp, msm_bedais[be_idx].active,
22589 msm_bedais[be_idx].passthr_mode[i]);
22590 switch (pp_id) {
22591 case ADM_PP_PARAM_MUTE_ID:
22592 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22593 mute = ucontrol->value.integer.value[1] ? true : false;
22594 msm_bedais_pp_params[index].mute_on = mute;
22595 set_bit(ADM_PP_PARAM_MUTE_BIT,
22596 &msm_bedais_pp_params[index].pp_params_config);
22597 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22598 adm_send_compressed_device_mute(port_id,
22599 idx, mute);
22600 break;
22601 case ADM_PP_PARAM_LATENCY_ID:
22602 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22603 msm_bedais_pp_params[index].latency =
22604 ucontrol->value.integer.value[1];
22605 set_bit(ADM_PP_PARAM_LATENCY_BIT,
22606 &msm_bedais_pp_params[index].pp_params_config);
22607 latency = msm_bedais_pp_params[index].latency =
22608 ucontrol->value.integer.value[1];
22609 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22610 adm_send_compressed_device_latency(port_id,
22611 idx, latency);
22612 break;
22613 default:
22614 pr_info("%s, device pp param %d not supported\n",
22615 __func__, pp_id);
22616 break;
22617 }
22618 }
22619 }
22620 return 0;
22621}
22622
22623static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22624 struct snd_ctl_elem_value *ucontrol)
22625{
22626 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
22627 return 0;
22628}
22629
22630static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
22631 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
22632 0, 3, msm_routing_get_device_pp_params_mixer,
22633 msm_routing_put_device_pp_params_mixer),
22634};
22635
22636static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
22637 struct snd_ctl_elem_value *ucontrol)
22638{
22639 ucontrol->value.integer.value[0] =
22640 core_get_license_status(ASM_MEDIA_FMT_APTX);
22641 pr_debug("%s: status %ld\n", __func__,
22642 ucontrol->value.integer.value[0]);
22643 return 0;
22644}
22645
22646static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
22647 struct snd_ctl_elem_value *ucontrol)
22648{
22649 int32_t status = 0;
22650
22651 status = core_set_license(ucontrol->value.integer.value[0],
22652 APTX_CLASSIC_DEC_LICENSE_ID);
22653 pr_debug("%s: status %d\n", __func__, status);
22654 return status;
22655}
22656
22657static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
22658 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
22659 0xFFFF, 0, msm_aptx_dec_license_control_get,
22660 msm_aptx_dec_license_control_put),
22661};
22662
22663static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
22664 struct snd_ctl_elem_info *uinfo)
22665{
22666 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22667 uinfo->count = sizeof(be_dai_name_table);
22668 return 0;
22669}
22670
22671static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
22672 unsigned int __user *bytes,
22673 unsigned int size)
22674{
22675 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022676 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022677
22678 if (size < sizeof(be_dai_name_table)) {
22679 pr_err("%s: invalid size %d requested, returning\n",
22680 __func__, size);
22681 ret = -EINVAL;
22682 goto done;
22683 }
22684
22685 /*
22686 * Fill be_dai_name_table from msm_bedais table to reduce code changes
22687 * needed when adding new backends
22688 */
22689 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
22690 be_dai_name_table[i].be_id = i;
22691 strlcpy(be_dai_name_table[i].be_name,
22692 msm_bedais[i].name,
22693 LPASS_BE_NAME_MAX_LENGTH);
22694 }
22695
22696 ret = copy_to_user(bytes, &be_dai_name_table,
22697 sizeof(be_dai_name_table));
22698 if (ret) {
22699 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
22700 ret = -EFAULT;
22701 }
22702
22703done:
22704 return ret;
22705}
22706
22707static const struct snd_kcontrol_new
22708 msm_routing_be_dai_name_table_mixer_controls[] = {
22709 {
22710 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
22711 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
22712 .info = msm_routing_be_dai_name_table_info,
22713 .name = "Backend DAI Name Table",
22714 .tlv.c = snd_soc_bytes_tlv_callback,
22715 .private_value = (unsigned long) &(struct soc_bytes_ext) {
22716 .max = sizeof(be_dai_name_table),
22717 .get = msm_routing_be_dai_name_table_tlv_get,
22718 }
22719 },
22720};
22721
22722static int msm_routing_stereo_channel_reverse_control_get(
22723 struct snd_kcontrol *kcontrol,
22724 struct snd_ctl_elem_value *ucontrol)
22725{
22726 ucontrol->value.integer.value[0] = swap_ch;
22727 pr_debug("%s: Swap channel value: %ld\n", __func__,
22728 ucontrol->value.integer.value[0]);
22729 return 0;
22730}
22731
22732static int msm_routing_stereo_channel_reverse_control_put(
22733 struct snd_kcontrol *kcontrol,
22734 struct snd_ctl_elem_value *ucontrol)
22735{
22736 int i, idx, be_index, port_id;
22737 int ret = 0;
22738 unsigned long copp;
22739
22740 pr_debug("%s Swap channel value:%ld\n", __func__,
22741 ucontrol->value.integer.value[0]);
22742
22743 swap_ch = ucontrol->value.integer.value[0];
22744
22745 mutex_lock(&routing_lock);
22746 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
22747 port_id = msm_bedais[be_index].port_id;
22748 if (!msm_bedais[be_index].active)
22749 continue;
22750
22751 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
22752 MSM_FRONTEND_DAI_MM_SIZE) {
22753 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
22754 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22755 if (!test_bit(idx, &copp))
22756 continue;
22757
22758 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
22759 __func__, port_id, idx);
22760 ret = adm_swap_speaker_channels(
22761 port_id, idx,
22762 msm_bedais[be_index].sample_rate,
22763 swap_ch);
22764 if (ret) {
22765 pr_err("%s:Swap_channel failed, err=%d\n",
22766 __func__, ret);
22767 goto done;
22768 }
22769 }
22770 }
22771 }
22772done:
22773 mutex_unlock(&routing_lock);
22774 return ret;
22775}
22776
22777static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
22778 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
22779 1, 0, msm_routing_stereo_channel_reverse_control_get,
22780 msm_routing_stereo_channel_reverse_control_put),
22781};
22782
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080022783static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
22784 struct snd_ctl_elem_info *uinfo)
22785{
22786 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
22787 uinfo->count = 1;
22788 return 0;
22789}
22790
22791static int msm_routing_instance_id_support_put(
22792 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
22793{
22794 bool supported = ucontrol->value.integer.value[0] ? true : false;
22795
22796 q6common_update_instance_id_support(supported);
22797 return 0;
22798}
22799
22800static int msm_routing_instance_id_support_get(
22801 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
22802{
22803 bool supported = false;
22804
22805 supported = q6common_is_instance_id_supported();
22806 ucontrol->value.integer.value[0] = supported ? 1 : 0;
22807
22808 return 0;
22809}
22810
22811static const struct snd_kcontrol_new
22812 msm_routing_feature_support_mixer_controls[] = {
22813 {
22814 .access = SNDRV_CTL_ELEM_ACCESS_READ |
22815 SNDRV_CTL_ELEM_ACCESS_WRITE,
22816 .info = msm_routing_instance_id_support_info,
22817 .name = "Instance ID Support",
22818 .put = msm_routing_instance_id_support_put,
22819 .get = msm_routing_instance_id_support_get,
22820 },
22821};
22822
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022823static const struct snd_pcm_ops msm_routing_pcm_ops = {
22824 .hw_params = msm_pcm_routing_hw_params,
22825 .close = msm_pcm_routing_close,
22826 .prepare = msm_pcm_routing_prepare,
22827};
22828
22829/* Not used but frame seems to require it */
22830static int msm_routing_probe(struct snd_soc_platform *platform)
22831{
22832 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
22833 ARRAY_SIZE(msm_qdsp6_widgets));
22834 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
22835 ARRAY_SIZE(intercon));
22836
22837 snd_soc_dapm_new_widgets(platform->component.dapm.card);
22838
22839 snd_soc_add_platform_controls(platform, lsm_controls,
22840 ARRAY_SIZE(lsm_controls));
22841
22842 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
22843 ARRAY_SIZE(aanc_slim_0_rx_mux));
22844
Sudheer Papothic07b37a2018-05-04 05:56:47 +053022845 snd_soc_add_platform_controls(platform, aanc_noise_level,
22846 ARRAY_SIZE(aanc_noise_level));
22847
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022848 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
22849 ARRAY_SIZE(msm_voc_session_controls));
22850
22851 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
22852 ARRAY_SIZE(app_type_cfg_controls));
22853
22854 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
22855 ARRAY_SIZE(lsm_app_type_cfg_controls));
22856
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022857 snd_soc_add_platform_controls(platform, module_cfg_controls,
22858 ARRAY_SIZE(module_cfg_controls));
22859
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022860 snd_soc_add_platform_controls(platform,
22861 stereo_to_custom_stereo_controls,
22862 ARRAY_SIZE(stereo_to_custom_stereo_controls));
22863
22864 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
22865 ARRAY_SIZE(ec_ref_param_controls));
22866
22867 snd_soc_add_platform_controls(platform, channel_mixer_controls,
22868 ARRAY_SIZE(channel_mixer_controls));
22869
22870 msm_qti_pp_add_controls(platform);
22871
22872 msm_dts_srs_tm_add_controls(platform);
22873
22874 msm_dolby_dap_add_controls(platform);
22875
22876 snd_soc_add_platform_controls(platform,
22877 use_ds1_or_ds2_controls,
22878 ARRAY_SIZE(use_ds1_or_ds2_controls));
22879
22880 snd_soc_add_platform_controls(platform,
22881 device_pp_params_mixer_controls,
22882 ARRAY_SIZE(device_pp_params_mixer_controls));
22883
22884 snd_soc_add_platform_controls(platform,
22885 msm_routing_be_dai_name_table_mixer_controls,
22886 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
22887
22888 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
22889 ARRAY_SIZE(msm_source_tracking_controls));
22890 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
22891 ARRAY_SIZE(adm_channel_config_controls));
22892
22893 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
22894 ARRAY_SIZE(aptx_dec_license_controls));
22895 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
22896 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080022897 snd_soc_add_platform_controls(
22898 platform, msm_routing_feature_support_mixer_controls,
22899 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
22900
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022901 return 0;
22902}
22903
22904int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
22905{
22906 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
22907}
22908
22909void msm_routing_pcm_free(struct snd_pcm *pcm)
22910{
22911 msm_pcm_routing_hwdep_free(pcm);
22912}
22913
22914static struct snd_soc_platform_driver msm_soc_routing_platform = {
22915 .ops = &msm_routing_pcm_ops,
22916 .probe = msm_routing_probe,
22917 .pcm_new = msm_routing_pcm_new,
22918 .pcm_free = msm_routing_pcm_free,
22919};
22920
22921static int msm_routing_pcm_probe(struct platform_device *pdev)
22922{
22923
22924 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
22925 return snd_soc_register_platform(&pdev->dev,
22926 &msm_soc_routing_platform);
22927}
22928
22929static int msm_routing_pcm_remove(struct platform_device *pdev)
22930{
22931 snd_soc_unregister_platform(&pdev->dev);
22932 return 0;
22933}
22934
22935static const struct of_device_id msm_pcm_routing_dt_match[] = {
22936 {.compatible = "qcom,msm-pcm-routing"},
22937 {}
22938};
22939MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
22940
22941static struct platform_driver msm_routing_pcm_driver = {
22942 .driver = {
22943 .name = "msm-pcm-routing",
22944 .owner = THIS_MODULE,
22945 .of_match_table = msm_pcm_routing_dt_match,
22946 },
22947 .probe = msm_routing_pcm_probe,
22948 .remove = msm_routing_pcm_remove,
22949};
22950
22951int msm_routing_check_backend_enabled(int fedai_id)
22952{
22953 int i;
22954
22955 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
22956 /* bad ID assigned in machine driver */
22957 pr_err("%s: bad MM ID\n", __func__);
22958 return 0;
22959 }
22960 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
22961 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
22962 return msm_bedais[i].active;
22963 }
22964 return 0;
22965}
22966
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053022967static int get_cal_type_index(int32_t cal_type)
22968{
22969 int ret = -EINVAL;
22970
22971 switch (cal_type) {
22972 case ADM_TOPOLOGY_CAL_TYPE:
22973 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
22974 break;
22975 case ADM_LSM_TOPOLOGY_CAL_TYPE:
22976 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
22977 break;
22978 default:
22979 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
22980 }
22981 return ret;
22982}
22983
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022984static int msm_routing_set_cal(int32_t cal_type,
22985 size_t data_size, void *data)
22986{
22987 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053022988 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022989 pr_debug("%s\n", __func__);
22990
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053022991 cal_index = get_cal_type_index(cal_type);
22992 if (cal_index < 0) {
22993 pr_err("%s: Could not get cal index %d\n",
22994 __func__, cal_index);
22995 ret = -EINVAL;
22996 goto done;
22997 }
22998
22999 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023000 if (ret < 0) {
23001 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23002 __func__, ret, cal_type);
23003 ret = -EINVAL;
23004 goto done;
23005 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023006 /* Pre-load if it is ADM topology */
23007 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23008 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23009 msm_routing_load_topology(data_size, data);
23010 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023011done:
23012 return ret;
23013}
23014
23015static void msm_routing_delete_cal_data(void)
23016{
23017 pr_debug("%s\n", __func__);
23018
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023019 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023020}
23021
23022static int msm_routing_init_cal_data(void)
23023{
23024 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023025 struct cal_type_info cal_type_info[] = {
23026 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023027 {NULL, NULL, NULL,
23028 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023029 {NULL, NULL, cal_utils_match_buf_num} },
23030
23031 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23032 {NULL, NULL, NULL,
23033 msm_routing_set_cal, NULL, NULL} },
23034 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023035 };
23036 pr_debug("%s\n", __func__);
23037
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023038 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23039 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023040 if (ret < 0) {
23041 pr_err("%s: could not create cal type!\n",
23042 __func__);
23043 ret = -EINVAL;
23044 goto err;
23045 }
23046
23047 return ret;
23048err:
23049 msm_routing_delete_cal_data();
23050 return ret;
23051}
23052
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023053int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023054{
23055 mutex_init(&routing_lock);
23056 if (msm_routing_init_cal_data())
23057 pr_err("%s: could not init cal data!\n", __func__);
23058
23059 afe_set_routing_callback(
23060 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23061
23062 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23063 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23064
23065 return platform_driver_register(&msm_routing_pcm_driver);
23066}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023067
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023068void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023069{
23070 msm_routing_delete_cal_data();
23071 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23072 mutex_destroy(&routing_lock);
23073 platform_driver_unregister(&msm_routing_pcm_driver);
23074}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023075
23076MODULE_DESCRIPTION("MSM routing platform driver");
23077MODULE_LICENSE("GPL v2");