blob: 428371017bd52cb09b97d2bc3ea66858e2dffbb3 [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
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013290static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13291 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13293 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13294 msm_routing_put_port_mixer),
13295 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13297 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13298 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013299 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13300 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13301 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13302 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013303};
13304
13305static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13306 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13307 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13308 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13309 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013310 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13311 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13312 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13313 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013314};
13315
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013316static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013317 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13318 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013319 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013321 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13322 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013323 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013325 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13326 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013327 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013329 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13330 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013331 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013333 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013335 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013337 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13338 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013339 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013341 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13342 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013343 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013345 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13346 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013347 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013349 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013351 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013353 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013355 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013357 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13358 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013359 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013361 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013363 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013365 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013367 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013369 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013371 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013373 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013375 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013377 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13378 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013379 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013381 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13382 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013383 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013385 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13386 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013387 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013389 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13390 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013391 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013393 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013395 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013397 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13398 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013399 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013401 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13402 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13403MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013404 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013405};
13406
13407static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013408 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013410 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013412 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013414 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013416 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013418 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013420 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013422 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013424 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13425 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013426 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013428 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13429 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013430 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13431 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013432};
13433
13434static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013435 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13436 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013437 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013439 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13440 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013441 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013443 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13444 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013445 MSM_BACKEND_DAI_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("PRI_MI2S_TX", SND_SOC_NOPM,
13448 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013449 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13450 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013451};
13452
13453static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013454 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13455 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013456 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013458 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013460 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013464 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13465 msm_routing_put_port_mixer),
13466};
13467
13468static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013469 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13470 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013471 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013473 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13474 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013475 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013479 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13480 msm_routing_put_port_mixer),
13481};
13482
Rohit Kumara5077932017-09-10 22:05:05 +053013483static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013484 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013486 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013488 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13489 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013490 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013492 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13493 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013494 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13495 msm_routing_put_port_mixer),
13496};
13497
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013498static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013499 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013501 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013503 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13504 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013505 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013507 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13508 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013509 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013511 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013513 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013515 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13516 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013517 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013519 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13520 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013521 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13522 msm_routing_put_port_mixer),
13523};
13524
13525static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013526 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13527 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013528 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013530 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13531 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013532 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013534 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13535 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013536 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013538 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13539 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013540 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013542 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13543 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013544 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13545 msm_routing_put_port_mixer),
13546};
13547
13548static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013549 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013551 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013553 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013555 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013557 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013559 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013561 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013563 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013565 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13566 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013567 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013569 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013571 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013573 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013575 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013577 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013579 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013581 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013583 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013585 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013587 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013591 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013593 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013595 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13596 msm_routing_put_port_mixer),
13597};
13598
13599static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013600 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013602 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013606 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13607 msm_routing_put_port_mixer),
13608};
13609
13610static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013611 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13612 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013613 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013615 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13616 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013617 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13618 msm_routing_put_port_mixer),
13619};
13620
13621
13622static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013623 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13624 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013625 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13626 msm_routing_put_port_mixer),
13627};
13628
13629static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013630 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13631 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013632 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13633 msm_routing_put_port_mixer),
13634};
13635
Karthikeyan Mani57550082018-05-03 18:43:58 -070013636static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
13637 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13639 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13640 msm_routing_put_port_mixer),
13641};
13642
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013644 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13645 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013646 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13647 msm_routing_put_port_mixer),
13648};
13649
13650static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013651 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013653 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013655 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13656 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013657 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13658 msm_routing_put_port_mixer),
13659};
13660
13661static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013662 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013664 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013666 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13667 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013668 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013670 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13671 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013672 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013674 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13675 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013676 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013678 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13679 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013680 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013682 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013684 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013686 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013688 MSM_BACKEND_DAI_QUINARY_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("SLIM_0_TX", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013692 MSM_BACKEND_DAI_SLIMBUS_0_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("SLIM_8_TX", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013696 MSM_BACKEND_DAI_SLIMBUS_8_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013700 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13701 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013702};
13703
13704static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013705 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13706 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013707 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
13708 msm_routing_put_port_mixer),
13709};
13710
13711static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013712 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13713 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013714 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013716 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13717 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013718 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013720 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13721 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013722 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013724 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13725 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013726 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013728 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13729 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013730 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013732 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13733 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013734 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013736 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13737 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013738 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013740 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13741 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013742 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013744 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13745 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013746 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13747 msm_routing_put_port_mixer),
13748};
13749
Rohit Kumara5077932017-09-10 22:05:05 +053013750static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013751 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013753 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013755 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013757 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013759 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013761 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013763 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013765 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013767 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013769 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013771 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013773 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013775 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013777 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13778 msm_routing_put_port_mixer),
13779};
13780
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013781static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013782 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013784 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13785 msm_routing_get_port_mixer,
13786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013787 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13788 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013789 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13790 msm_routing_get_port_mixer,
13791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013792 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13793 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013794 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13795 msm_routing_get_port_mixer,
13796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013797 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13798 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013799 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13800 msm_routing_get_port_mixer,
13801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013802 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013804 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13805 msm_routing_get_port_mixer,
13806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013807 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013809 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13810 msm_routing_get_port_mixer,
13811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013812 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13813 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013814 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13815 msm_routing_get_port_mixer,
13816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013817 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13818 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013819 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13820 msm_routing_get_port_mixer,
13821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013822 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013824 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13825 msm_routing_get_port_mixer,
13826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013827 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13828 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013829 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13830 msm_routing_get_port_mixer,
13831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013832 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13833 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013834 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13835 msm_routing_get_port_mixer,
13836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013837 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13838 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013839 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13840 msm_routing_get_port_mixer,
13841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013842 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013844 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13845 msm_routing_get_port_mixer,
13846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013847 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13848 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013849 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13850 msm_routing_get_port_mixer,
13851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013852 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13853 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013854 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13855 msm_routing_get_port_mixer,
13856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013857 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13858 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013859 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13860 msm_routing_get_port_mixer,
13861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013862 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13863 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013864 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13865 msm_routing_get_port_mixer,
13866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013867 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13868 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013869 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13870 msm_routing_get_port_mixer,
13871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013872 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13873 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013874 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13875 msm_routing_get_port_mixer,
13876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013877 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13878 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013879 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13880 msm_routing_get_port_mixer,
13881 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013882};
13883
13884static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013885 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13886 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013887 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13888 msm_routing_get_port_mixer,
13889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013890 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13891 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013892 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13893 msm_routing_get_port_mixer,
13894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013895 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013897 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13898 msm_routing_get_port_mixer,
13899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013900 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13901 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013902 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13903 msm_routing_get_port_mixer,
13904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013905 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13906 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013907 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13908 msm_routing_get_port_mixer,
13909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013910 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13911 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013912 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13913 msm_routing_get_port_mixer,
13914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013915 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13916 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013917 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13918 msm_routing_get_port_mixer,
13919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013920 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13921 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013922 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13923 msm_routing_get_port_mixer,
13924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013925 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13926 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013927 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13928 msm_routing_get_port_mixer,
13929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013930 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13931 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013932 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13933 msm_routing_get_port_mixer,
13934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013935 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13936 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013937 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13938 msm_routing_get_port_mixer,
13939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013940 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13941 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013942 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13943 msm_routing_get_port_mixer,
13944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013945 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13946 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013947 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13948 msm_routing_get_port_mixer,
13949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013950 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13951 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013952 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13953 msm_routing_get_port_mixer,
13954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013955 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013957 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13958 msm_routing_get_port_mixer,
13959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013960 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13961 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013962 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13963 msm_routing_get_port_mixer,
13964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013965 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13966 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013967 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13968 msm_routing_get_port_mixer,
13969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013970 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013972 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13973 msm_routing_get_port_mixer,
13974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013975 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13976 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013977 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13978 msm_routing_get_port_mixer,
13979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013980 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013982 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13983 msm_routing_get_port_mixer,
13984 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013985};
13986
13987static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013988 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13989 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013990 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13991 msm_routing_get_port_mixer,
13992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013993 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13994 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013995 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13996 msm_routing_get_port_mixer,
13997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013998 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13999 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014000 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14001 msm_routing_get_port_mixer,
14002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014003 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14004 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014005 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14006 msm_routing_get_port_mixer,
14007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014008 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014010 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14011 msm_routing_get_port_mixer,
14012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014013 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14014 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014015 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14016 msm_routing_get_port_mixer,
14017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014018 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14019 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014020 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14021 msm_routing_get_port_mixer,
14022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014023 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14024 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014025 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14026 msm_routing_get_port_mixer,
14027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014028 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014030 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14031 msm_routing_get_port_mixer,
14032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014033 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14034 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014035 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14036 msm_routing_get_port_mixer,
14037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014038 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14039 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014040 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14041 msm_routing_get_port_mixer,
14042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14046 msm_routing_get_port_mixer,
14047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014048 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14049 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014050 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14051 msm_routing_get_port_mixer,
14052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014053 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14054 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014055 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14056 msm_routing_get_port_mixer,
14057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014058 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14059 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014060 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14061 msm_routing_get_port_mixer,
14062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014063 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14064 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014065 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14066 msm_routing_get_port_mixer,
14067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014068 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14069 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014070 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14071 msm_routing_get_port_mixer,
14072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014073 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14074 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014075 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14076 msm_routing_get_port_mixer,
14077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014078 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14079 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014080 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14081 msm_routing_get_port_mixer,
14082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014083 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014085 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14086 msm_routing_get_port_mixer,
14087 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014088};
14089
14090static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014091 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14092 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014093 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14094 msm_routing_get_port_mixer,
14095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014096 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14097 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014098 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14099 msm_routing_get_port_mixer,
14100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014101 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14102 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014103 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14104 msm_routing_get_port_mixer,
14105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014106 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14107 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014108 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14109 msm_routing_get_port_mixer,
14110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014111 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14112 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014113 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14114 msm_routing_get_port_mixer,
14115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014116 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14117 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014118 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14119 msm_routing_get_port_mixer,
14120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014121 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14122 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014123 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14124 msm_routing_get_port_mixer,
14125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014126 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14127 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014128 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14129 msm_routing_get_port_mixer,
14130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014131 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014133 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14134 msm_routing_get_port_mixer,
14135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014136 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14137 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014138 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14139 msm_routing_get_port_mixer,
14140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014141 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14142 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014143 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14144 msm_routing_get_port_mixer,
14145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014146 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14147 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014148 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14149 msm_routing_get_port_mixer,
14150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014151 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14152 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014153 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14154 msm_routing_get_port_mixer,
14155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014156 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14157 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014158 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14159 msm_routing_get_port_mixer,
14160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014161 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014163 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14164 msm_routing_get_port_mixer,
14165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014166 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14167 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014168 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14169 msm_routing_get_port_mixer,
14170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014171 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14172 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014173 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14174 msm_routing_get_port_mixer,
14175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014176 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14177 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014178 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14179 msm_routing_get_port_mixer,
14180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014181 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14182 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014183 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14184 msm_routing_get_port_mixer,
14185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014186 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14187 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014188 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14189 msm_routing_get_port_mixer,
14190 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014191};
14192
14193static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014194 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14195 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014196 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14197 msm_routing_get_port_mixer,
14198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014199 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14200 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014201 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14202 msm_routing_get_port_mixer,
14203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014204 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14205 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014206 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14207 msm_routing_get_port_mixer,
14208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014209 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14210 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014211 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14212 msm_routing_get_port_mixer,
14213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014214 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014216 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14217 msm_routing_get_port_mixer,
14218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014219 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14220 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014221 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14222 msm_routing_get_port_mixer,
14223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014224 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14225 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014226 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14227 msm_routing_get_port_mixer,
14228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014229 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14230 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014231 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14232 msm_routing_get_port_mixer,
14233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014234 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014236 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14237 msm_routing_get_port_mixer,
14238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014239 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14240 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014241 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14242 msm_routing_get_port_mixer,
14243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014244 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14245 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014246 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14247 msm_routing_get_port_mixer,
14248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014249 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14250 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014251 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14252 msm_routing_get_port_mixer,
14253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014254 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014256 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14257 msm_routing_get_port_mixer,
14258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014259 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14260 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014261 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14262 msm_routing_get_port_mixer,
14263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014264 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14265 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014266 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14267 msm_routing_get_port_mixer,
14268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014269 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14270 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014271 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14272 msm_routing_get_port_mixer,
14273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014274 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014276 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14277 msm_routing_get_port_mixer,
14278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014279 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014281 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14282 msm_routing_get_port_mixer,
14283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014284 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14285 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014286 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14287 msm_routing_get_port_mixer,
14288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014289 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14290 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014291 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14292 msm_routing_get_port_mixer,
14293 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014294};
14295
14296static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014297 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14298 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014299 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14300 msm_routing_get_port_mixer,
14301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014302 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14303 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014304 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14305 msm_routing_get_port_mixer,
14306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014307 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14308 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014309 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14310 msm_routing_get_port_mixer,
14311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014312 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14313 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014314 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14315 msm_routing_get_port_mixer,
14316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014317 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14318 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014319 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14320 msm_routing_get_port_mixer,
14321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014322 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14323 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014324 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14325 msm_routing_get_port_mixer,
14326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014327 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14328 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014329 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14330 msm_routing_get_port_mixer,
14331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014332 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14333 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014334 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14335 msm_routing_get_port_mixer,
14336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014337 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14338 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014339 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14340 msm_routing_get_port_mixer,
14341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014342 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14343 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014344 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14345 msm_routing_get_port_mixer,
14346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014347 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14348 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014349 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14350 msm_routing_get_port_mixer,
14351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014352 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14353 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014354 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14355 msm_routing_get_port_mixer,
14356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014357 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14358 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014359 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14360 msm_routing_get_port_mixer,
14361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014362 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14363 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014364 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14365 msm_routing_get_port_mixer,
14366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014367 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14368 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014369 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14370 msm_routing_get_port_mixer,
14371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014372 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14373 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014374 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14375 msm_routing_get_port_mixer,
14376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014377 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14378 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014379 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14380 msm_routing_get_port_mixer,
14381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014382 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014384 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14385 msm_routing_get_port_mixer,
14386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014387 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14388 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014389 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14390 msm_routing_get_port_mixer,
14391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014392 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014394 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14395 msm_routing_get_port_mixer,
14396 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014397};
14398
14399static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014400 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14401 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014402 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14403 msm_routing_get_port_mixer,
14404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014405 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14406 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014407 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14408 msm_routing_get_port_mixer,
14409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014410 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14411 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014412 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14413 msm_routing_get_port_mixer,
14414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014415 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14416 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014417 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14418 msm_routing_get_port_mixer,
14419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014420 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14421 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014422 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14423 msm_routing_get_port_mixer,
14424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014425 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14426 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014427 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14428 msm_routing_get_port_mixer,
14429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014430 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14431 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014432 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14433 msm_routing_get_port_mixer,
14434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014435 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14436 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014437 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14438 msm_routing_get_port_mixer,
14439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014440 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14441 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014442 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14443 msm_routing_get_port_mixer,
14444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014445 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14446 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014447 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14448 msm_routing_get_port_mixer,
14449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014450 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14451 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014452 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14453 msm_routing_get_port_mixer,
14454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014455 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14456 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014457 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14458 msm_routing_get_port_mixer,
14459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014460 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14461 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014462 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14463 msm_routing_get_port_mixer,
14464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014465 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14466 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014467 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14468 msm_routing_get_port_mixer,
14469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014470 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14471 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014472 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14473 msm_routing_get_port_mixer,
14474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014475 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014477 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14478 msm_routing_get_port_mixer,
14479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014480 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014482 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14483 msm_routing_get_port_mixer,
14484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014485 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14486 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014487 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14488 msm_routing_get_port_mixer,
14489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014490 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14491 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014492 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14493 msm_routing_get_port_mixer,
14494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014495 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014497 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14498 msm_routing_get_port_mixer,
14499 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014500};
14501
14502static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014503 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014505 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14506 msm_routing_get_port_mixer,
14507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014508 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14509 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014510 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14511 msm_routing_get_port_mixer,
14512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014513 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14514 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014515 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14516 msm_routing_get_port_mixer,
14517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014518 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14519 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014520 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14521 msm_routing_get_port_mixer,
14522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014523 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14524 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014525 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14526 msm_routing_get_port_mixer,
14527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014528 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14529 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014530 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14531 msm_routing_get_port_mixer,
14532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014533 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14534 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014535 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14536 msm_routing_get_port_mixer,
14537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014538 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14539 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014540 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14541 msm_routing_get_port_mixer,
14542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014543 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14544 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014545 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14546 msm_routing_get_port_mixer,
14547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014548 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14549 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014550 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14551 msm_routing_get_port_mixer,
14552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014553 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14554 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014555 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14556 msm_routing_get_port_mixer,
14557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014558 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14559 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014560 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14561 msm_routing_get_port_mixer,
14562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014563 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14564 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014565 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14566 msm_routing_get_port_mixer,
14567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014568 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014570 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14571 msm_routing_get_port_mixer,
14572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014573 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14574 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014575 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14576 msm_routing_get_port_mixer,
14577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014578 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014580 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14581 msm_routing_get_port_mixer,
14582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014583 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14584 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014585 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14586 msm_routing_get_port_mixer,
14587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014588 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014590 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14591 msm_routing_get_port_mixer,
14592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014593 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14594 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014595 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14596 msm_routing_get_port_mixer,
14597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014598 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014600 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14601 msm_routing_get_port_mixer,
14602 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014603};
14604
14605static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014606 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14607 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014608 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14609 msm_routing_get_port_mixer,
14610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014611 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14612 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014613 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14614 msm_routing_get_port_mixer,
14615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014616 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014618 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14619 msm_routing_get_port_mixer,
14620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014621 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14622 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014623 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14624 msm_routing_get_port_mixer,
14625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014626 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14627 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014628 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14629 msm_routing_get_port_mixer,
14630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014631 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14632 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014633 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14634 msm_routing_get_port_mixer,
14635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014636 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14637 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014638 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14639 msm_routing_get_port_mixer,
14640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014641 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14642 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014643 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14644 msm_routing_get_port_mixer,
14645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014646 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14647 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014648 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14649 msm_routing_get_port_mixer,
14650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014651 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14652 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014653 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14654 msm_routing_get_port_mixer,
14655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014656 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14657 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014658 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14659 msm_routing_get_port_mixer,
14660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014661 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14662 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014663 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14664 msm_routing_get_port_mixer,
14665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014666 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014668 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14669 msm_routing_get_port_mixer,
14670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014671 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14672 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014673 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14674 msm_routing_get_port_mixer,
14675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014676 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14677 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014678 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14679 msm_routing_get_port_mixer,
14680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014683 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14684 msm_routing_get_port_mixer,
14685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014686 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014688 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14689 msm_routing_get_port_mixer,
14690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014691 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14692 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014693 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14694 msm_routing_get_port_mixer,
14695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014696 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14697 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014698 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14699 msm_routing_get_port_mixer,
14700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014703 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14704 msm_routing_get_port_mixer,
14705 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014706};
14707
14708static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014709 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14710 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014711 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14712 msm_routing_get_port_mixer,
14713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014714 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14715 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014716 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14717 msm_routing_get_port_mixer,
14718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014719 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14720 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014721 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14722 msm_routing_get_port_mixer,
14723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014724 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14725 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014726 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14727 msm_routing_get_port_mixer,
14728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014729 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14730 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014731 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14732 msm_routing_get_port_mixer,
14733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014734 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14735 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014736 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14737 msm_routing_get_port_mixer,
14738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014739 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14740 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014741 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14742 msm_routing_get_port_mixer,
14743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014744 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14745 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014746 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14747 msm_routing_get_port_mixer,
14748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014749 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14750 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014751 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14752 msm_routing_get_port_mixer,
14753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014754 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14755 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014756 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14757 msm_routing_get_port_mixer,
14758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014759 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14760 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014761 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14762 msm_routing_get_port_mixer,
14763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014764 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14765 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014766 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14767 msm_routing_get_port_mixer,
14768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014769 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14770 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014771 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14772 msm_routing_get_port_mixer,
14773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014774 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14775 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014776 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14777 msm_routing_get_port_mixer,
14778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014779 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14780 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014781 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14782 msm_routing_get_port_mixer,
14783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014784 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14785 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014786 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14787 msm_routing_get_port_mixer,
14788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014789 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014791 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14792 msm_routing_get_port_mixer,
14793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014794 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14795 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014796 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14797 msm_routing_get_port_mixer,
14798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014799 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14800 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014801 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14802 msm_routing_get_port_mixer,
14803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014804 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014806 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14807 msm_routing_get_port_mixer,
14808 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014809};
14810
14811static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014812 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14813 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014814 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14815 msm_routing_get_port_mixer,
14816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014817 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14818 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014819 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14820 msm_routing_get_port_mixer,
14821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014822 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14823 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014824 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14825 msm_routing_get_port_mixer,
14826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014827 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14828 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014829 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14830 msm_routing_get_port_mixer,
14831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014832 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14833 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014834 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14835 msm_routing_get_port_mixer,
14836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014837 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014839 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14840 msm_routing_get_port_mixer,
14841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014842 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14843 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014844 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14845 msm_routing_get_port_mixer,
14846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014847 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14848 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014849 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14850 msm_routing_get_port_mixer,
14851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014852 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14853 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014854 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14855 msm_routing_get_port_mixer,
14856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014857 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14858 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014859 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14860 msm_routing_get_port_mixer,
14861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014862 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14863 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014864 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14865 msm_routing_get_port_mixer,
14866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014867 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14868 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014869 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14870 msm_routing_get_port_mixer,
14871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014872 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14873 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014874 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14875 msm_routing_get_port_mixer,
14876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014877 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14878 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014879 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14880 msm_routing_get_port_mixer,
14881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014882 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14883 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014884 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14885 msm_routing_get_port_mixer,
14886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014887 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14888 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014889 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14890 msm_routing_get_port_mixer,
14891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014892 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014894 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14895 msm_routing_get_port_mixer,
14896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014897 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14898 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014899 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14900 msm_routing_get_port_mixer,
14901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014902 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14903 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014904 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14905 msm_routing_get_port_mixer,
14906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014907 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014909 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14910 msm_routing_get_port_mixer,
14911 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014912};
14913
14914static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014915 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14916 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014917 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14918 msm_routing_get_port_mixer,
14919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014920 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14921 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014922 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14923 msm_routing_get_port_mixer,
14924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014925 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14926 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014927 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14928 msm_routing_get_port_mixer,
14929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014930 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14931 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014932 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14933 msm_routing_get_port_mixer,
14934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014935 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14936 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014937 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14938 msm_routing_get_port_mixer,
14939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014940 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14941 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014942 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14943 msm_routing_get_port_mixer,
14944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014945 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14946 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014947 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14948 msm_routing_get_port_mixer,
14949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014950 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14951 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014952 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14953 msm_routing_get_port_mixer,
14954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014955 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14956 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014957 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14958 msm_routing_get_port_mixer,
14959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014960 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014962 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14963 msm_routing_get_port_mixer,
14964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014965 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14966 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014967 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14968 msm_routing_get_port_mixer,
14969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014970 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14971 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014972 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14973 msm_routing_get_port_mixer,
14974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014975 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14976 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014977 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14978 msm_routing_get_port_mixer,
14979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014980 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14981 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014982 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14983 msm_routing_get_port_mixer,
14984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014985 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14986 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014987 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14988 msm_routing_get_port_mixer,
14989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014990 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014992 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14993 msm_routing_get_port_mixer,
14994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014995 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14996 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014997 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14998 msm_routing_get_port_mixer,
14999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015000 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15001 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015002 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15003 msm_routing_get_port_mixer,
15004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015005 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15006 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015007 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15008 msm_routing_get_port_mixer,
15009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015010 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015012 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15013 msm_routing_get_port_mixer,
15014 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015015};
15016
15017static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015018 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15019 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015020 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15021 msm_routing_get_port_mixer,
15022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015023 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15024 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015025 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15026 msm_routing_get_port_mixer,
15027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015028 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15029 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015030 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15031 msm_routing_get_port_mixer,
15032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015033 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15034 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015035 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15036 msm_routing_get_port_mixer,
15037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015038 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15039 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015040 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15041 msm_routing_get_port_mixer,
15042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015043 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015045 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15046 msm_routing_get_port_mixer,
15047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015048 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15049 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015050 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15051 msm_routing_get_port_mixer,
15052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015053 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15054 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015055 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15056 msm_routing_get_port_mixer,
15057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015058 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15059 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015060 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15061 msm_routing_get_port_mixer,
15062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015063 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15064 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015065 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15066 msm_routing_get_port_mixer,
15067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015068 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15069 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015070 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15071 msm_routing_get_port_mixer,
15072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015073 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15074 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015075 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15076 msm_routing_get_port_mixer,
15077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015078 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15079 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015080 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15081 msm_routing_get_port_mixer,
15082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015083 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015085 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15086 msm_routing_get_port_mixer,
15087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015088 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15089 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015090 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15091 msm_routing_get_port_mixer,
15092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015093 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15094 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015095 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15096 msm_routing_get_port_mixer,
15097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015098 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15099 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015100 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15101 msm_routing_get_port_mixer,
15102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015103 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015105 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15106 msm_routing_get_port_mixer,
15107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015108 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15109 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015110 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15111 msm_routing_get_port_mixer,
15112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015113 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15114 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015115 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15116 msm_routing_get_port_mixer,
15117 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015118};
15119
15120static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015121 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15122 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015123 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15124 msm_routing_get_port_mixer,
15125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015126 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015128 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15129 msm_routing_get_port_mixer,
15130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015131 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15132 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015133 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15134 msm_routing_get_port_mixer,
15135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015136 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15137 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015138 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15139 msm_routing_get_port_mixer,
15140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015141 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15142 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015143 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15144 msm_routing_get_port_mixer,
15145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015146 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15147 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015148 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15149 msm_routing_get_port_mixer,
15150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015151 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15152 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015153 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15154 msm_routing_get_port_mixer,
15155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015156 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15157 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015158 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15159 msm_routing_get_port_mixer,
15160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015161 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15162 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015163 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15164 msm_routing_get_port_mixer,
15165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015166 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015168 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15169 msm_routing_get_port_mixer,
15170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015171 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15172 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015173 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15174 msm_routing_get_port_mixer,
15175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015176 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15177 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015178 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15179 msm_routing_get_port_mixer,
15180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015181 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15182 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015183 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15184 msm_routing_get_port_mixer,
15185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015186 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015188 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15189 msm_routing_get_port_mixer,
15190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015191 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15192 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015193 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15194 msm_routing_get_port_mixer,
15195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015196 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15197 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015198 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15199 msm_routing_get_port_mixer,
15200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015201 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15202 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015203 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15204 msm_routing_get_port_mixer,
15205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015206 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15207 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015208 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15209 msm_routing_get_port_mixer,
15210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015211 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15212 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015213 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15214 msm_routing_get_port_mixer,
15215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015216 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15217 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015218 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15219 msm_routing_get_port_mixer,
15220 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015221};
15222
15223static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015224 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15225 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015226 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15227 msm_routing_get_port_mixer,
15228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015229 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015231 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15232 msm_routing_get_port_mixer,
15233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015234 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15235 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015236 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15237 msm_routing_get_port_mixer,
15238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015239 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15240 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015241 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15242 msm_routing_get_port_mixer,
15243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015244 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15245 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015246 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15247 msm_routing_get_port_mixer,
15248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015249 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15250 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015251 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15252 msm_routing_get_port_mixer,
15253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015254 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15255 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015256 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15257 msm_routing_get_port_mixer,
15258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015259 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15260 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015261 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15262 msm_routing_get_port_mixer,
15263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015264 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15265 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015266 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15267 msm_routing_get_port_mixer,
15268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015269 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15270 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015271 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15272 msm_routing_get_port_mixer,
15273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015274 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15275 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015276 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15277 msm_routing_get_port_mixer,
15278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015279 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15280 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015281 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15282 msm_routing_get_port_mixer,
15283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015284 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15285 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015286 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15287 msm_routing_get_port_mixer,
15288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015289 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15290 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015291 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15292 msm_routing_get_port_mixer,
15293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015294 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15295 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015296 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15297 msm_routing_get_port_mixer,
15298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015299 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15300 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015301 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15302 msm_routing_get_port_mixer,
15303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015304 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15305 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015306 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15307 msm_routing_get_port_mixer,
15308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015309 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15310 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015311 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15312 msm_routing_get_port_mixer,
15313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015314 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15315 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015316 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15317 msm_routing_get_port_mixer,
15318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015319 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15320 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015321 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15322 msm_routing_get_port_mixer,
15323 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015324};
15325
15326static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015327 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15328 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015329 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15330 msm_routing_get_port_mixer,
15331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015332 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015334 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15335 msm_routing_get_port_mixer,
15336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015337 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15338 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015339 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15340 msm_routing_get_port_mixer,
15341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015342 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15343 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015344 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15345 msm_routing_get_port_mixer,
15346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015347 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15348 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015349 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15350 msm_routing_get_port_mixer,
15351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015352 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15353 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015354 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15355 msm_routing_get_port_mixer,
15356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015357 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15358 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015359 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15360 msm_routing_get_port_mixer,
15361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015362 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15363 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015364 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15365 msm_routing_get_port_mixer,
15366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015367 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15368 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015369 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15370 msm_routing_get_port_mixer,
15371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015372 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15373 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015374 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15375 msm_routing_get_port_mixer,
15376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015377 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15378 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015379 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15380 msm_routing_get_port_mixer,
15381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015382 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15383 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015384 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15385 msm_routing_get_port_mixer,
15386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015387 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15388 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015389 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15390 msm_routing_get_port_mixer,
15391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015392 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15393 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015394 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15395 msm_routing_get_port_mixer,
15396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015397 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015399 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15400 msm_routing_get_port_mixer,
15401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015402 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15403 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015404 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15405 msm_routing_get_port_mixer,
15406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015407 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15408 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015409 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15410 msm_routing_get_port_mixer,
15411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015412 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15413 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015414 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15415 msm_routing_get_port_mixer,
15416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015417 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15418 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015419 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15420 msm_routing_get_port_mixer,
15421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015422 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15423 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015424 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15425 msm_routing_get_port_mixer,
15426 msm_routing_put_port_mixer),
15427};
15428
15429static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015430 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15431 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015432 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15433 msm_routing_get_port_mixer,
15434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015435 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15436 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015437 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15438 msm_routing_get_port_mixer,
15439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15441 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015442 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15443 msm_routing_get_port_mixer,
15444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015445 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15446 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015447 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15448 msm_routing_get_port_mixer,
15449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015450 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15451 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015452 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15453 msm_routing_get_port_mixer,
15454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015455 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15456 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015457 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15458 msm_routing_get_port_mixer,
15459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015460 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15461 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015462 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15463 msm_routing_get_port_mixer,
15464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015465 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15466 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015467 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15468 msm_routing_get_port_mixer,
15469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015470 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15471 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015472 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15473 msm_routing_get_port_mixer,
15474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015475 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15476 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015477 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15478 msm_routing_get_port_mixer,
15479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015480 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15481 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015482 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15483 msm_routing_get_port_mixer,
15484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015485 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15486 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015487 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15488 msm_routing_get_port_mixer,
15489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015490 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015492 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15493 msm_routing_get_port_mixer,
15494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015495 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15496 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015497 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15498 msm_routing_get_port_mixer,
15499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015500 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15501 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015502 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15503 msm_routing_get_port_mixer,
15504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015505 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15506 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015507 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15508 msm_routing_get_port_mixer,
15509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015510 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15511 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015512 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15513 msm_routing_get_port_mixer,
15514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015515 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15516 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015517 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15518 msm_routing_get_port_mixer,
15519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015520 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15521 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015522 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15523 msm_routing_get_port_mixer,
15524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015525 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15526 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015527 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15528 msm_routing_get_port_mixer,
15529 msm_routing_put_port_mixer),
15530};
15531
15532static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015533 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15534 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015535 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15536 msm_routing_get_port_mixer,
15537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015538 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015540 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15541 msm_routing_get_port_mixer,
15542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015543 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15544 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015545 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15546 msm_routing_get_port_mixer,
15547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015548 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15549 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015550 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15551 msm_routing_get_port_mixer,
15552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015553 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015555 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15556 msm_routing_get_port_mixer,
15557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015558 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015560 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15561 msm_routing_get_port_mixer,
15562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015563 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015565 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15566 msm_routing_get_port_mixer,
15567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015570 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15571 msm_routing_get_port_mixer,
15572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015573 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015575 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15576 msm_routing_get_port_mixer,
15577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015578 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15579 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015580 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15581 msm_routing_get_port_mixer,
15582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015585 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15586 msm_routing_get_port_mixer,
15587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015588 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015590 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15591 msm_routing_get_port_mixer,
15592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015593 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15594 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015595 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15596 msm_routing_get_port_mixer,
15597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015598 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15599 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015600 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15601 msm_routing_get_port_mixer,
15602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015605 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15606 msm_routing_get_port_mixer,
15607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015608 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15609 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015610 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15611 msm_routing_get_port_mixer,
15612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015613 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15614 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015615 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15616 msm_routing_get_port_mixer,
15617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015618 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15619 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015620 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15621 msm_routing_get_port_mixer,
15622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015623 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15624 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015625 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15626 msm_routing_get_port_mixer,
15627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015628 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15629 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015630 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15631 msm_routing_get_port_mixer,
15632 msm_routing_put_port_mixer),
15633};
15634
15635static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015636 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15637 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015638 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15639 msm_routing_get_port_mixer,
15640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015641 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015643 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15644 msm_routing_get_port_mixer,
15645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015646 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15647 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015648 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15649 msm_routing_get_port_mixer,
15650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015651 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15652 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015653 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15654 msm_routing_get_port_mixer,
15655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015658 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15659 msm_routing_get_port_mixer,
15660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015663 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15664 msm_routing_get_port_mixer,
15665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015666 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15667 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015668 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15669 msm_routing_get_port_mixer,
15670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15672 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015673 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15674 msm_routing_get_port_mixer,
15675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015678 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15679 msm_routing_get_port_mixer,
15680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015681 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15682 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015683 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15684 msm_routing_get_port_mixer,
15685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15687 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015688 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15689 msm_routing_get_port_mixer,
15690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015691 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15692 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015693 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15694 msm_routing_get_port_mixer,
15695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015696 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15697 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015698 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15699 msm_routing_get_port_mixer,
15700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015701 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15702 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015703 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15704 msm_routing_get_port_mixer,
15705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15707 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015708 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15709 msm_routing_get_port_mixer,
15710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015711 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15712 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015713 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15714 msm_routing_get_port_mixer,
15715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015716 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15717 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015718 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15719 msm_routing_get_port_mixer,
15720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015721 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15722 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015723 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15724 msm_routing_get_port_mixer,
15725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015726 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015728 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15729 msm_routing_get_port_mixer,
15730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015731 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15732 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015733 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15734 msm_routing_get_port_mixer,
15735 msm_routing_put_port_mixer),
15736};
15737
15738static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015739 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15740 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015741 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15742 msm_routing_get_port_mixer,
15743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015744 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15745 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015746 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15747 msm_routing_get_port_mixer,
15748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15750 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015751 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15752 msm_routing_get_port_mixer,
15753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015754 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015756 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15757 msm_routing_get_port_mixer,
15758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015759 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015761 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15762 msm_routing_get_port_mixer,
15763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015766 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15767 msm_routing_get_port_mixer,
15768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015769 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015771 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15772 msm_routing_get_port_mixer,
15773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015774 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15775 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015776 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15777 msm_routing_get_port_mixer,
15778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015781 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15782 msm_routing_get_port_mixer,
15783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015784 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15785 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015786 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15787 msm_routing_get_port_mixer,
15788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015789 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15790 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015791 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15792 msm_routing_get_port_mixer,
15793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015794 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15795 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015796 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15797 msm_routing_get_port_mixer,
15798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015801 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15802 msm_routing_get_port_mixer,
15803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015804 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015806 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15807 msm_routing_get_port_mixer,
15808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015809 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15810 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015811 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15812 msm_routing_get_port_mixer,
15813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015814 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15815 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015816 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15817 msm_routing_get_port_mixer,
15818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015819 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15820 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015821 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15822 msm_routing_get_port_mixer,
15823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015824 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15825 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015826 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15827 msm_routing_get_port_mixer,
15828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015829 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15830 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015831 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15832 msm_routing_get_port_mixer,
15833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015834 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15835 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015836 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15837 msm_routing_get_port_mixer,
15838 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015839};
15840
15841static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015842 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015844 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015846 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15847 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015848 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015850 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15851 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015852 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015854 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15855 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015856 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015858 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15859 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015860 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015862 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015866 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15867 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015868 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15869 msm_routing_put_port_mixer),
15870};
15871
15872static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015873 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15874 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015875 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015877 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015881 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15882 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015883 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015885 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15886 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015887 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015889 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15890 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015891 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015893 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015895 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015897 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015899 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015901 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15902 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015903 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015905 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15906 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015907 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15908 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015909};
15910
15911static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015914 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15915 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015916 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
15917 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015918 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15919 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015920 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15921 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015922 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15923 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015924 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15925 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015926 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15927 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015928 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15929 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015930 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15931 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015932 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015934 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15935 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015936 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015938 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15939 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015942 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15943 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053015944 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15945 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15946 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15947 msm_routing_put_listen_mixer),
15948 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15949 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15950 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15951 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015952};
15953
15954static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015955 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015957 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15958 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015959 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
15960 SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015962 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15963 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015964 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15965 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015966 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15967 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015968 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15969 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015970 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15971 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015972 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15973 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015974 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15975 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015976 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015978 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15979 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015982 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15983 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015984 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15985 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015986 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15987 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053015988 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15989 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15990 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15991 msm_routing_put_listen_mixer),
15992 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15993 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15994 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15995 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015996};
15997
15998static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015999 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16000 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016001 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16002 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016003 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16004 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016005 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16006 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016007 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16008 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016009 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16010 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016011 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016013 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16014 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016015 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016017 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16018 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016019 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16020 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016021 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16022 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016023 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016025 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16026 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016027 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16028 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016029 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16030 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016031 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16032 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16033 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16034 msm_routing_put_listen_mixer),
16035 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16036 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16037 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16038 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016039};
16040
16041static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016042 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16043 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016044 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16045 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016046 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016048 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16049 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016050 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16051 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016052 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16053 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016054 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16055 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016056 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16057 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016058 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016060 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16061 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016062 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16063 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016064 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16065 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016066 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016068 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16069 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016070 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16071 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016072 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16073 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016074 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16076 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16077 msm_routing_put_listen_mixer),
16078 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16080 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16081 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016082};
16083
16084static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016085 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16086 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016087 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16088 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016089 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16090 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016091 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16092 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016093 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016095 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16096 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016097 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16098 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016099 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16100 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016101 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16102 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016103 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16104 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016105 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16106 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016107 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16108 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016109 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16110 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016111 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16112 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016113 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016115 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16116 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016117 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16118 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16119 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16120 msm_routing_put_listen_mixer),
16121 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16122 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16123 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16124 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016125};
16126
16127static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016128 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16129 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016130 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16131 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016132 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16133 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016134 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16135 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016136 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016138 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16139 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016140 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16141 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016142 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16143 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016144 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16145 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016146 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16147 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016148 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16149 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016150 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16151 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016152 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16153 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016154 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16155 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016156 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016158 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16159 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016160 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16161 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16162 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16163 msm_routing_put_listen_mixer),
16164 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16165 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16166 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16167 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016168};
16169
16170static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016171 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016173 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16174 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016175 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16176 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016177 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16178 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016179 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16180 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016181 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16182 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016183 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16184 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016185 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16186 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016187 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016189 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16190 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016191 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016193 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16194 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016195 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16196 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016197 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16198 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016199 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16200 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016201 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16202 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016203 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16204 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16205 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16206 msm_routing_put_listen_mixer),
16207 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16208 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16209 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16210 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016211};
16212
16213static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016214 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16215 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016216 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16217 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016218 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16219 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016220 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16221 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016222 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16223 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016224 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16225 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016226 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16227 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016228 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16229 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016230 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16231 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016232 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16233 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016234 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016236 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16237 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016238 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16239 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016240 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16241 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016242 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16243 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016244 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16245 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016246 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16247 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16248 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16249 msm_routing_put_listen_mixer),
16250 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16252 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16253 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016254};
16255
16256static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16257 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16258 0, 1, 0, msm_routing_get_switch_mixer,
16259 msm_routing_put_switch_mixer);
16260
16261static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16262 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16263 0, 1, 0, msm_routing_get_switch_mixer,
16264 msm_routing_put_switch_mixer);
16265
16266static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16267 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16268 0, 1, 0, msm_routing_get_switch_mixer,
16269 msm_routing_put_switch_mixer);
16270
16271static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16272 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16273 0, 1, 0, msm_routing_get_switch_mixer,
16274 msm_routing_put_switch_mixer);
16275
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016276static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16277 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16278 0, 1, 0, msm_routing_get_switch_mixer,
16279 msm_routing_put_switch_mixer);
16280
16281static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016282 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16283 0, 1, 0, msm_routing_get_switch_mixer,
16284 msm_routing_put_switch_mixer);
16285
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016286static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16287 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16288 0, 1, 0, msm_routing_get_switch_mixer,
16289 msm_routing_put_switch_mixer);
16290
16291static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16292 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16293 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16294 msm_routing_put_fm_pcmrx_switch_mixer);
16295
16296static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16297 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16298 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16299 msm_routing_put_int0_mi2s_switch_mixer);
16300
16301static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16302 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16303 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16304 msm_routing_put_int4_mi2s_switch_mixer);
16305
16306static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16307 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16308 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16309 msm_routing_put_pri_mi2s_switch_mixer);
16310
16311static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16312 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16313 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16314 msm_routing_put_sec_mi2s_switch_mixer);
16315
16316static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16317 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16318 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16319 msm_routing_put_tert_mi2s_switch_mixer);
16320
16321static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16322 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16323 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16324 msm_routing_put_quat_mi2s_switch_mixer);
16325
Rohit Kumara5077932017-09-10 22:05:05 +053016326static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16327 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16328 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16329 msm_routing_put_quin_mi2s_switch_mixer);
16330
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016331static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16332 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16333 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16334 msm_routing_put_hfp_switch_mixer);
16335
16336static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16337 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16338 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16339 msm_routing_put_hfp_switch_mixer);
16340
16341static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16342 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16343 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16344 msm_routing_put_hfp_switch_mixer);
16345
16346static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16347 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16348 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16349 msm_routing_put_hfp_switch_mixer);
16350
16351static const struct snd_kcontrol_new usb_switch_mixer_controls =
16352 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16353 0, 1, 0, msm_routing_get_usb_switch_mixer,
16354 msm_routing_put_usb_switch_mixer);
16355
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016356static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16357 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16358 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16359 msm_routing_a2dp_switch_mixer_put);
16360
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016361static const struct soc_enum lsm_port_enum =
16362 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16363
16364static const char * const lsm_func_text[] = {
16365 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16366};
16367static const struct soc_enum lsm_func_enum =
16368 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16369
16370static const struct snd_kcontrol_new lsm_controls[] = {
16371 /* kcontrol of lsm_function */
16372 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16373 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16374 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16375 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16376 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16377 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16378 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16379 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16380 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16381 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16382 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16383 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16384 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16385 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16386 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16387 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16388 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16389 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16390 /* kcontrol of lsm_port */
16391 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16392 msm_routing_lsm_port_get,
16393 msm_routing_lsm_port_put),
16394 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16395 msm_routing_lsm_port_get,
16396 msm_routing_lsm_port_put),
16397 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16398 msm_routing_lsm_port_get,
16399 msm_routing_lsm_port_put),
16400 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16401 msm_routing_lsm_port_get,
16402 msm_routing_lsm_port_put),
16403 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16404 msm_routing_lsm_port_get,
16405 msm_routing_lsm_port_put),
16406 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16407 msm_routing_lsm_port_get,
16408 msm_routing_lsm_port_put),
16409 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16410 msm_routing_lsm_port_get,
16411 msm_routing_lsm_port_put),
16412 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16413 msm_routing_lsm_port_get,
16414 msm_routing_lsm_port_put),
16415};
16416
16417static const char * const aanc_slim_0_rx_text[] = {
16418 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16419 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16420};
16421
16422static const struct soc_enum aanc_slim_0_rx_enum =
16423 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16424 aanc_slim_0_rx_text);
16425
16426static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16427 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16428 msm_routing_slim_0_rx_aanc_mux_get,
16429 msm_routing_slim_0_rx_aanc_mux_put)
16430};
16431
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016432static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16433 struct snd_ctl_elem_value *ucontrol)
16434{
16435 ucontrol->value.integer.value[0] = aanc_level;
16436
16437 return 0;
16438}
16439
16440static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16441 struct snd_ctl_elem_value *ucontrol)
16442{
16443 int ret = 0;
16444
16445 mutex_lock(&routing_lock);
16446 aanc_level = ucontrol->value.integer.value[0];
16447 pr_debug("%s: value: %ld\n",
16448 __func__, ucontrol->value.integer.value[0]);
16449 ret = afe_set_aanc_noise_level(aanc_level);
16450 mutex_unlock(&routing_lock);
16451
16452 return ret;
16453}
16454
16455static const struct snd_kcontrol_new aanc_noise_level[] = {
16456 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16457 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16458};
16459
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016460static int msm_routing_get_stereo_to_custom_stereo_control(
16461 struct snd_kcontrol *kcontrol,
16462 struct snd_ctl_elem_value *ucontrol)
16463{
16464 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16465 return 0;
16466}
16467
16468static int msm_routing_put_stereo_to_custom_stereo_control(
16469 struct snd_kcontrol *kcontrol,
16470 struct snd_ctl_elem_value *ucontrol)
16471{
16472 int flag = 0, i = 0, rc = 0, idx = 0;
16473 int be_index = 0, port_id, topo_id;
16474 unsigned int session_id = 0;
16475 uint16_t op_FL_ip_FL_weight = 0;
16476 uint16_t op_FL_ip_FR_weight = 0;
16477 uint16_t op_FR_ip_FL_weight = 0;
16478 uint16_t op_FR_ip_FR_weight = 0;
16479
16480 flag = ucontrol->value.integer.value[0];
16481 pr_debug("%s E flag %d\n", __func__, flag);
16482
16483 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16484 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16485 __func__, is_custom_stereo_on, flag);
16486 return 0;
16487 }
16488 is_custom_stereo_on = flag ? true : false;
16489 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16490 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16491 port_id = msm_bedais[be_index].port_id;
16492 if (!msm_bedais[be_index].active)
16493 continue;
16494 if ((port_id != SLIMBUS_0_RX) &&
16495 (port_id != RT_PROXY_PORT_001_RX) &&
16496 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16497 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16498 continue;
16499
16500 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16501 MSM_FRONTEND_DAI_MM_SIZE) {
16502 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16503 LEGACY_PCM_MODE)
16504 goto skip_send_custom_stereo;
16505 session_id =
16506 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16507 if (is_custom_stereo_on) {
16508 op_FL_ip_FL_weight =
16509 Q14_GAIN_ZERO_POINT_FIVE;
16510 op_FL_ip_FR_weight =
16511 Q14_GAIN_ZERO_POINT_FIVE;
16512 op_FR_ip_FL_weight =
16513 Q14_GAIN_ZERO_POINT_FIVE;
16514 op_FR_ip_FR_weight =
16515 Q14_GAIN_ZERO_POINT_FIVE;
16516 } else {
16517 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16518 op_FL_ip_FR_weight = 0;
16519 op_FR_ip_FL_weight = 0;
16520 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16521 }
16522 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16523 unsigned long copp =
16524 session_copp_map[i]
16525 [SESSION_TYPE_RX][be_index];
16526 if (!test_bit(idx, &copp))
16527 goto skip_send_custom_stereo;
16528 topo_id = adm_get_topology_for_port_copp_idx(
16529 msm_bedais[be_index].port_id, idx);
16530 if (topo_id < 0)
16531 pr_debug("%s:Err:custom stereo topo %d",
16532 __func__, topo_id);
16533 pr_debug("idx %d\n", idx);
16534 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
16535 rc = msm_ds2_dap_set_custom_stereo_onoff
16536 (msm_bedais[be_index].port_id,
16537 idx, is_custom_stereo_on);
16538 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
16539 rc = dolby_dap_set_custom_stereo_onoff(
16540 msm_bedais[be_index].port_id,
16541 idx, is_custom_stereo_on);
16542 else
16543 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
16544 (msm_bedais[be_index].port_id,
16545 idx, session_id,
16546 op_FL_ip_FL_weight,
16547 op_FL_ip_FR_weight,
16548 op_FR_ip_FL_weight,
16549 op_FR_ip_FR_weight);
16550 if (rc < 0)
16551skip_send_custom_stereo:
16552 pr_err("%s: err setting custom stereo\n",
16553 __func__);
16554 }
16555
16556 }
16557 }
16558 return 0;
16559}
16560
16561static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
16562 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
16563 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
16564 msm_routing_put_stereo_to_custom_stereo_control),
16565};
16566
16567static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16568 struct snd_ctl_elem_value *ucontrol)
16569{
16570 return 0;
16571}
16572
16573static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16574 struct snd_ctl_elem_value *ucontrol)
16575{
16576 int i = 0, j;
16577 int num_app_types = ucontrol->value.integer.value[i++];
16578
16579 pr_debug("%s\n", __func__);
16580
16581 memset(app_type_cfg, 0, MAX_APP_TYPES*
16582 sizeof(struct msm_pcm_routing_app_type_data));
16583 if (num_app_types > MAX_APP_TYPES) {
16584 pr_err("%s: number of app types exceed the max supported\n",
16585 __func__);
16586 return -EINVAL;
16587 }
16588 for (j = 0; j < num_app_types; j++) {
16589 app_type_cfg[j].app_type =
16590 ucontrol->value.integer.value[i++];
16591 app_type_cfg[j].sample_rate =
16592 ucontrol->value.integer.value[i++];
16593 app_type_cfg[j].bit_width =
16594 ucontrol->value.integer.value[i++];
16595 }
16596
16597 return 0;
16598}
16599
16600static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
16601 struct snd_ctl_elem_value *ucontrol)
16602{
16603 int j, fe_id, be_id, port_type;
16604 int ret = 0;
16605 unsigned long copp;
16606 struct msm_pcm_routing_bdai_data *bedai;
16607 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16608 SESSION_TYPE_RX;
16609 int app_type = ucontrol->value.integer.value[1];
16610 int gain = (ucontrol->value.integer.value[2] +
16611 ucontrol->value.integer.value[3])/2;
16612
16613 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16614 MSM_AFE_PORT_TYPE_TX;
16615
16616 mutex_lock(&routing_lock);
16617 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16618 if (is_be_dai_extproc(be_id))
16619 continue;
16620
16621 bedai = &msm_bedais[be_id];
16622 if (afe_get_port_type(bedai->port_id) != port_type)
16623 continue;
16624
16625 if (!bedai->active)
16626 continue;
16627
16628 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16629 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16630 continue;
16631
16632 if (app_type !=
16633 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16634 continue;
16635
16636 copp = session_copp_map[fe_id][dir][be_id];
16637 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
16638 if (!test_bit(j, &copp))
16639 continue;
16640 ret |= adm_set_volume(bedai->port_id, j, gain);
16641 }
16642 }
16643 }
16644 mutex_unlock(&routing_lock);
16645 return ret ? -EINVAL : 0;
16646}
16647
16648static const struct snd_kcontrol_new app_type_cfg_controls[] = {
16649 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
16650 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
16651 msm_routing_put_app_type_cfg_control),
16652 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
16653 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
16654};
16655
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016656static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
16657 struct snd_ctl_elem_value *ucontrol)
16658{
16659 int copp_idx, fe_id, be_id, port_type;
16660 int ret = 0;
16661 unsigned long copp;
16662 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016663 u8 *packed_params = NULL;
16664 struct param_hdr_v3 param_hdr;
16665 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
16666 sizeof(uint32_t));
16667
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016668 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16669 SESSION_TYPE_RX;
16670 int app_type = ucontrol->value.integer.value[1];
16671 int module_id = ucontrol->value.integer.value[2];
16672 int instance_id = ucontrol->value.integer.value[3];
16673 int param_id = ucontrol->value.integer.value[4];
16674 int param_value = ucontrol->value.integer.value[5];
16675
16676 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16677 MSM_AFE_PORT_TYPE_TX;
16678 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
16679 __func__, app_type, module_id,
16680 instance_id, param_id, param_value);
16681
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016682 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
16683 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016684 return -ENOMEM;
16685
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016686 memset(&param_hdr, 0, sizeof(param_hdr));
16687 param_hdr.module_id = module_id;
16688 param_hdr.instance_id = instance_id;
16689 param_hdr.param_id = param_id;
16690 param_hdr.param_size = sizeof(uint32_t);
16691
16692 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016693
16694 mutex_lock(&routing_lock);
16695 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16696 if (is_be_dai_extproc(be_id))
16697 continue;
16698
16699 bedai = &msm_bedais[be_id];
16700 if (afe_get_port_type(bedai->port_id) != port_type)
16701 continue;
16702
16703 if (!bedai->active)
16704 continue;
16705
16706 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16707 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16708 continue;
16709
16710 if (app_type !=
16711 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16712 continue;
16713
16714 copp = session_copp_map[fe_id][dir][be_id];
16715 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
16716 copp_idx++) {
16717 if (!test_bit(copp_idx, &copp))
16718 continue;
16719
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016720 ret = q6common_pack_pp_params(packed_params,
16721 &param_hdr,
16722 (u8 *) &param_value,
16723 &packed_param_size);
16724 if (ret) {
16725 pr_err("%s: Failed to pack params, error %d\n",
16726 __func__, ret);
16727 goto done;
16728 }
16729
16730 ret = adm_set_pp_params(bedai->port_id,
16731 copp_idx, NULL,
16732 packed_params,
16733 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016734 if (ret) {
16735 pr_err("%s: Setting param failed with err=%d\n",
16736 __func__, ret);
16737 ret = -EINVAL;
16738 goto done;
16739 }
16740 }
16741 }
16742 }
16743done:
16744 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016745 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016746 return ret;
16747}
16748
16749static const struct snd_kcontrol_new module_cfg_controls[] = {
16750 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
16751 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
16752};
16753
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016754static int msm_routing_get_lsm_app_type_cfg_control(
16755 struct snd_kcontrol *kcontrol,
16756 struct snd_ctl_elem_value *ucontrol)
16757{
16758 return 0;
16759}
16760
16761static int msm_routing_put_lsm_app_type_cfg_control(
16762 struct snd_kcontrol *kcontrol,
16763 struct snd_ctl_elem_value *ucontrol)
16764{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016765 int shift = ((struct soc_multi_mixer_control *)
16766 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016767 int i = 0, j;
16768 int num_app_types = ucontrol->value.integer.value[i++];
16769
16770 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016771 sizeof(struct msm_pcm_routing_app_type_data));
16772
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016773 if (num_app_types > MAX_APP_TYPES) {
16774 pr_err("%s: number of app types exceed the max supported\n",
16775 __func__);
16776 return -EINVAL;
16777 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016778
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016779 for (j = 0; j < num_app_types; j++) {
16780 lsm_app_type_cfg[j].app_type =
16781 ucontrol->value.integer.value[i++];
16782 lsm_app_type_cfg[j].sample_rate =
16783 ucontrol->value.integer.value[i++];
16784 lsm_app_type_cfg[j].bit_width =
16785 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016786 /* Shift of 1 indicates this is V2 mixer control */
16787 if (shift == 1)
16788 lsm_app_type_cfg[j].num_out_channels =
16789 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016790 }
16791
16792 return 0;
16793}
16794
16795static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
16796 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
16797 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16798 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016799 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
16800 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16801 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016802};
16803
16804static int msm_routing_get_use_ds1_or_ds2_control(
16805 struct snd_kcontrol *kcontrol,
16806 struct snd_ctl_elem_value *ucontrol)
16807{
16808 ucontrol->value.integer.value[0] = is_ds2_on;
16809 return 0;
16810}
16811
16812static int msm_routing_put_use_ds1_or_ds2_control(
16813 struct snd_kcontrol *kcontrol,
16814 struct snd_ctl_elem_value *ucontrol)
16815{
16816 is_ds2_on = ucontrol->value.integer.value[0];
16817 return 0;
16818}
16819
16820static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
16821 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
16822 1, 0, msm_routing_get_use_ds1_or_ds2_control,
16823 msm_routing_put_use_ds1_or_ds2_control),
16824};
16825
16826int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
16827 struct snd_ctl_elem_value *ucontrol) {
16828 int rc = 0;
16829 int be_idx = 0;
16830 char *param_value;
16831 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016832 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
16833 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016834
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016835 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016836 if (!param_value)
16837 return -ENOMEM;
16838
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016839 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016840 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
16841 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
16842 break;
16843 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016844 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
16845 param_hdr.instance_id = INSTANCE_ID_0;
16846 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
16847 param_hdr.param_size = param_size;
16848 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
16849 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016850 if (rc) {
16851 pr_err("%s: get parameters failed:%d\n", __func__, rc);
16852 kfree(param_value);
16853 return -EINVAL;
16854 }
16855 update_param_value = (int *)param_value;
16856 ucontrol->value.integer.value[0] = update_param_value[0];
16857
16858 pr_debug("%s: FROM DSP value[0] 0x%x\n",
16859 __func__, update_param_value[0]);
16860 }
16861 kfree(param_value);
16862 return 0;
16863}
16864
16865static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
16866 struct snd_ctl_elem_value *ucontrol)
16867{
16868 voc_session_id = ucontrol->value.integer.value[0];
16869
16870 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
16871
16872 return 0;
16873}
16874
16875static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
16876 struct snd_ctl_elem_value *ucontrol)
16877{
16878 ucontrol->value.integer.value[0] = voc_session_id;
16879
16880 return 0;
16881}
16882
16883static struct snd_kcontrol_new msm_voc_session_controls[] = {
16884 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
16885 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
16886 msm_voc_session_id_put),
16887};
16888
16889static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
16890 struct snd_ctl_elem_info *uinfo)
16891{
16892 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16893 uinfo->count = sizeof(struct sound_focus_param);
16894
16895 return 0;
16896}
16897
16898static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
16899 struct snd_ctl_elem_value *ucontrol)
16900{
16901 int ret = 0;
16902 struct sound_focus_param soundFocusData;
16903
16904 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
16905 sizeof(struct sound_focus_param));
16906 ret = voc_set_sound_focus(soundFocusData);
16907 if (ret) {
16908 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
16909 __func__, ret);
16910
16911 ret = -EINVAL;
16912 }
16913
16914 return ret;
16915}
16916
16917static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
16918 struct snd_ctl_elem_value *ucontrol)
16919{
16920 int ret = 0;
16921 struct sound_focus_param soundFocusData;
16922
16923 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
16924
16925 ret = voc_get_sound_focus(&soundFocusData);
16926 if (ret) {
16927 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
16928 __func__, ret);
16929
16930 ret = -EINVAL;
16931 goto done;
16932 }
16933 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
16934 sizeof(struct sound_focus_param));
16935
16936done:
16937 return ret;
16938}
16939
16940static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
16941 struct snd_ctl_elem_info *uinfo)
16942{
16943 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16944 uinfo->count = sizeof(struct source_tracking_param);
16945
16946 return 0;
16947}
16948
16949static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
16950 struct snd_ctl_elem_value *ucontrol)
16951{
Meng Wang92edfde2018-04-24 12:18:37 +080016952 int ret = 0;
16953 struct source_tracking_param sourceTrackingData;
16954
16955 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
16956
16957 ret = voc_get_source_tracking(&sourceTrackingData);
16958 if (ret) {
16959 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
16960 __func__, ret);
16961
16962 ret = -EINVAL;
16963 goto done;
16964 }
16965 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
16966 sizeof(struct source_tracking_param));
16967
16968done:
16969 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016970}
16971
16972static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
16973 int *copp_idx)
16974{
16975 int i, idx, be_idx;
16976 int ret = 0;
16977 unsigned long copp;
16978
16979 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
16980
16981 ret = q6audio_validate_port(port_id);
16982 if (ret < 0) {
16983 pr_err("%s: port validation failed id 0x%x ret %d\n",
16984 __func__, port_id, ret);
16985
16986 ret = -EINVAL;
16987 goto done;
16988 }
16989
16990 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
16991 if (msm_bedais[be_idx].port_id == port_id)
16992 break;
16993 }
16994 if (be_idx >= MSM_BACKEND_DAI_MAX) {
16995 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
16996
16997 ret = -EINVAL;
16998 goto done;
16999 }
17000
17001 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
17002 MSM_FRONTEND_DAI_MM_SIZE) {
17003 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17004 copp = session_copp_map[i]
17005 [session_type][be_idx];
17006 if (test_bit(idx, &copp))
17007 break;
17008 }
17009 if (idx >= MAX_COPPS_PER_PORT)
17010 continue;
17011 else
17012 break;
17013 }
17014 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
17015 pr_err("%s: Invalid FE, exiting\n", __func__);
17016
17017 ret = -EINVAL;
17018 goto done;
17019 }
17020 *copp_idx = idx;
17021 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17022
17023done:
17024 return ret;
17025}
17026
17027static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17028 const char *prefix, int *port_id)
17029{
17030 int ret = 0;
17031
17032 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17033
17034 /*
17035 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17036 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17037 * and compare the string with the backend name to derive the port id.
17038 */
17039 if (!strcmp(kcontrol->id.name + strlen(prefix),
17040 "SLIMBUS_0")) {
17041 *port_id = SLIMBUS_0_TX;
17042 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17043 "TERT_MI2S")) {
17044 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17045 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17046 "INT3_MI2S")) {
17047 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
17048 } else {
17049 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17050 __func__, kcontrol->id.name);
17051
17052 ret = -EINVAL;
17053 goto done;
17054 }
17055 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17056 __func__, kcontrol->id.name, *port_id);
17057
17058done:
17059 return ret;
17060}
17061
17062static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17063 struct snd_ctl_elem_value *ucontrol)
17064{
17065 int ret = 0;
17066 struct sound_focus_param soundFocusData;
17067 int port_id, copp_idx;
17068
17069 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17070 "Sound Focus Audio Tx ", &port_id);
17071 if (ret != 0) {
17072 pr_err("%s: Error in deriving port id, err=%d\n",
17073 __func__, ret);
17074
17075 ret = -EINVAL;
17076 goto done;
17077 }
17078
17079 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17080 &copp_idx);
17081 if (ret) {
17082 pr_err("%s: Could not get copp idx for port_id=%d\n",
17083 __func__, port_id);
17084
17085 ret = -EINVAL;
17086 goto done;
17087 }
17088
17089 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17090 sizeof(struct sound_focus_param));
17091
17092 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17093 if (ret) {
17094 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17095 __func__, ret);
17096
17097 ret = -EINVAL;
17098 goto done;
17099 }
17100
17101done:
17102 return ret;
17103}
17104
17105static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17106 struct snd_ctl_elem_value *ucontrol)
17107{
17108 int ret = 0;
17109 struct sound_focus_param soundFocusData;
17110 int port_id, copp_idx;
17111
17112 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17113 "Sound Focus Audio Tx ", &port_id);
17114 if (ret) {
17115 pr_err("%s: Error in deriving port id, err=%d\n",
17116 __func__, ret);
17117
17118 ret = -EINVAL;
17119 goto done;
17120 }
17121
17122 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17123 &copp_idx);
17124 if (ret) {
17125 pr_err("%s: Could not get copp idx for port_id=%d\n",
17126 __func__, port_id);
17127
17128 ret = -EINVAL;
17129 goto done;
17130 }
17131
17132 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17133 if (ret) {
17134 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17135 __func__, ret);
17136
17137 ret = -EINVAL;
17138 goto done;
17139 }
17140
17141 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17142 sizeof(struct sound_focus_param));
17143
17144done:
17145 return ret;
17146}
17147
17148static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17149 struct snd_ctl_elem_value *ucontrol)
17150{
17151 int ret = 0;
17152 struct source_tracking_param sourceTrackingData;
17153 int port_id, copp_idx;
17154
17155 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17156 "Source Tracking Audio Tx ", &port_id);
17157 if (ret) {
17158 pr_err("%s: Error in deriving port id, err=%d\n",
17159 __func__, ret);
17160
17161 ret = -EINVAL;
17162 goto done;
17163 }
17164
17165 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17166 &copp_idx);
17167 if (ret) {
17168 pr_err("%s: Could not get copp idx for port_id=%d\n",
17169 __func__, port_id);
17170
17171 ret = -EINVAL;
17172 goto done;
17173 }
17174
17175 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17176 if (ret) {
17177 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17178 __func__, ret);
17179
17180 ret = -EINVAL;
17181 goto done;
17182 }
17183
17184 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17185 sizeof(struct source_tracking_param));
17186
17187done:
17188 return ret;
17189}
17190
17191static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17192 {
17193 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17194 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17195 .name = "Sound Focus Voice Tx SLIMBUS_0",
17196 .info = msm_sound_focus_info,
17197 .get = msm_voice_sound_focus_get,
17198 .put = msm_voice_sound_focus_put,
17199 },
17200 {
17201 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17202 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17203 .name = "Source Tracking Voice Tx SLIMBUS_0",
17204 .info = msm_source_tracking_info,
17205 .get = msm_voice_source_tracking_get,
17206 },
17207 {
17208 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17209 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17210 .name = "Sound Focus Audio Tx SLIMBUS_0",
17211 .info = msm_sound_focus_info,
17212 .get = msm_audio_sound_focus_get,
17213 .put = msm_audio_sound_focus_put,
17214 },
17215 {
17216 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17217 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17218 .name = "Source Tracking Audio Tx SLIMBUS_0",
17219 .info = msm_source_tracking_info,
17220 .get = msm_audio_source_tracking_get,
17221 },
17222 {
17223 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17224 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17225 .name = "Sound Focus Voice Tx TERT_MI2S",
17226 .info = msm_sound_focus_info,
17227 .get = msm_voice_sound_focus_get,
17228 .put = msm_voice_sound_focus_put,
17229 },
17230 {
17231 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17232 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17233 .name = "Source Tracking Voice Tx TERT_MI2S",
17234 .info = msm_source_tracking_info,
17235 .get = msm_voice_source_tracking_get,
17236 },
17237 {
17238 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17239 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17240 .name = "Sound Focus Audio Tx TERT_MI2S",
17241 .info = msm_sound_focus_info,
17242 .get = msm_audio_sound_focus_get,
17243 .put = msm_audio_sound_focus_put,
17244 },
17245 {
17246 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17247 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17248 .name = "Source Tracking Audio Tx TERT_MI2S",
17249 .info = msm_source_tracking_info,
17250 .get = msm_audio_source_tracking_get,
17251 },
17252 {
17253 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17254 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17255 .name = "Sound Focus Voice Tx INT3_MI2S",
17256 .info = msm_sound_focus_info,
17257 .get = msm_voice_sound_focus_get,
17258 .put = msm_voice_sound_focus_put,
17259 },
17260 {
17261 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17262 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17263 .name = "Source Tracking Voice Tx INT3_MI2S",
17264 .info = msm_source_tracking_info,
17265 .get = msm_voice_source_tracking_get,
17266 },
17267 {
17268 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17269 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17270 .name = "Sound Focus Audio Tx INT3_MI2S",
17271 .info = msm_sound_focus_info,
17272 .get = msm_audio_sound_focus_get,
17273 .put = msm_audio_sound_focus_put,
17274 },
17275 {
17276 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17277 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17278 .name = "Source Tracking Audio Tx INT3_MI2S",
17279 .info = msm_source_tracking_info,
17280 .get = msm_audio_source_tracking_get,
17281 },
17282};
17283
17284static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17285 struct snd_ctl_elem_value *ucontrol)
17286{
17287 int ret = 0;
17288 int item;
17289 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17290
17291 pr_debug("%s item is %d\n", __func__,
17292 ucontrol->value.enumerated.item[0]);
17293 mutex_lock(&routing_lock);
17294 item = ucontrol->value.enumerated.item[0];
17295 if (item < e->items) {
17296 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17297 __func__, e->shift_l, e->values[item]);
17298 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17299 e->values[item] < MSM_BACKEND_DAI_MAX)
17300 /* Enable feedback TX path */
17301 ret = afe_spk_prot_feed_back_cfg(
17302 msm_bedais[e->values[item]].port_id,
17303 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17304 else {
17305 pr_debug("%s values are out of range item %d\n",
17306 __func__, e->values[item]);
17307 /* Disable feedback TX path */
17308 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17309 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17310 else
17311 ret = -EINVAL;
17312 }
17313 } else {
17314 pr_err("%s item value is out of range item\n", __func__);
17315 ret = -EINVAL;
17316 }
17317 mutex_unlock(&routing_lock);
17318 return ret;
17319}
17320
17321static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17322 struct snd_ctl_elem_value *ucontrol)
17323{
17324 int ret = 0;
17325 int item;
17326 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17327
17328 pr_debug("%s item is %d\n", __func__,
17329 ucontrol->value.enumerated.item[0]);
17330 mutex_lock(&routing_lock);
17331 item = ucontrol->value.enumerated.item[0];
17332 if (item < e->items) {
17333 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17334 __func__, e->shift_l, e->values[item]);
17335 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17336 e->values[item] < MSM_BACKEND_DAI_MAX)
17337 /* Enable feedback TX path */
17338 ret = afe_spk_prot_feed_back_cfg(
17339 msm_bedais[e->values[item]].port_id,
17340 msm_bedais[e->shift_l].port_id,
17341 1, 1, 1);
17342 else {
17343 pr_debug("%s values are out of range item %d\n",
17344 __func__, e->values[item]);
17345 /* Disable feedback TX path */
17346 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17347 ret = afe_spk_prot_feed_back_cfg(0,
17348 0, 0, 0, 0);
17349 else
17350 ret = -EINVAL;
17351 }
17352 } else {
17353 pr_err("%s item value is out of range item\n", __func__);
17354 ret = -EINVAL;
17355 }
17356 mutex_unlock(&routing_lock);
17357 return ret;
17358}
17359
17360static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17361 struct snd_ctl_elem_value *ucontrol)
17362{
17363 pr_debug("%s\n", __func__);
17364 return 0;
17365}
17366
17367static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17368 struct snd_ctl_elem_value *ucontrol)
17369{
17370 pr_debug("%s\n", __func__);
17371 ucontrol->value.enumerated.item[0] = 0;
17372 return 0;
17373}
17374
17375static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17376 "ZERO", "SLIM4_TX"
17377};
17378
17379static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17380 "ZERO", "SLIM4_TX"
17381};
17382
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017383static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17384 "ZERO", "WSA_CDC_DMA_TX_0"
17385};
17386
17387static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17388 "ZERO", "WSA_CDC_DMA_TX_0"
17389};
17390
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017391static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17392 "ZERO", "SENARY_TX"
17393};
17394
17395static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17396 "ZERO", "INT5_MI2S_TX"
17397};
17398
17399static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17400 "ZERO", "INT5_MI2S_TX"
17401};
17402
17403static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17404 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17405};
17406
17407static const int const slim0_rx_vi_fb_tx_rch_value[] = {
17408 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17409};
17410
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017411static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
17412 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17413};
17414
17415static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
17416 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17417};
17418
17419
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017420static const int const mi2s_rx_vi_fb_tx_value[] = {
17421 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
17422};
17423
17424static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
17425 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17426};
17427
17428static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
17429 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17430};
17431
17432static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
17433 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17434 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
17435 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
17436
17437static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
17438 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17439 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
17440 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
17441
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017442static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
17443 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17444 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
17445 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
17446
17447static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
17448 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17449 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
17450 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
17451
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017452static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
17453 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
17454 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
17455 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
17456
17457static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
17458 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17459 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
17460 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
17461 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
17462
17463static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
17464 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17465 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
17466 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
17467 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
17468
17469static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
17470 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
17471 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17472 spkr_prot_put_vi_lch_port);
17473
17474static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
17475 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
17476 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17477 spkr_prot_put_vi_rch_port);
17478
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017479static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
17480 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
17481 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17482 spkr_prot_put_vi_lch_port);
17483
17484static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
17485 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
17486 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17487 spkr_prot_put_vi_rch_port);
17488
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017489static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
17490 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
17491 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
17492 spkr_prot_put_vi_lch_port);
17493
17494static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
17495 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
17496 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
17497 spkr_prot_put_vi_lch_port);
17498
17499static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
17500 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
17501 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
17502 spkr_prot_put_vi_rch_port);
17503
17504static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
17505 /* Frontend AIF */
17506 /* Widget name equals to Front-End DAI name<Need confirmation>,
17507 * Stream name must contains substring of front-end dai name
17508 */
17509 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
17510 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
17511 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
17512 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
17513 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
17514 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
17515 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
17516 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
17517 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
17518 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
17519 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
17520 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
17521 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
17522 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
17523 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
17524 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
17525 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017526 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017527 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
17528 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
17529 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
17530 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
17531 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
17532 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
17533 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
17534 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
17535 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053017536 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053017537 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017538 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
17539 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
17540 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
17541 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017542 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080017543 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
17544 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017545 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
17546 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
17547 "VoiceMMode1 Playback", 0, 0, 0, 0),
17548 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
17549 "VoiceMMode1 Capture", 0, 0, 0, 0),
17550 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
17551 "VoiceMMode2 Playback", 0, 0, 0, 0),
17552 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
17553 "VoiceMMode2 Capture", 0, 0, 0, 0),
17554 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
17555 0, 0, 0, 0),
17556 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
17557 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017558 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
17559 0, 0, 0, 0),
17560 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
17561 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053017562 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
17563 "TX3_CDC_DMA_HOSTLESS Capture", 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,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018309 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018310 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018311 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018312
18313 /* Mixer definitions */
18314 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18315 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18316 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18317 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18318 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18319 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18320 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18321 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18322 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18323 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18324 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18325 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
18326 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18327 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18328 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18329 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018330 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18331 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018332 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18333 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18334 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18335 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018336 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18337 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18338 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18339 quaternary_mi2s_rx_mixer_controls,
18340 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18341 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18342 tertiary_mi2s_rx_mixer_controls,
18343 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18344 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18345 secondary_mi2s_rx_mixer_controls,
18346 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18347 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18348 secondary_mi2s_rx2_mixer_controls,
18349 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18350 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18351 primary_mi2s_rx_mixer_controls,
18352 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18353 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18354 int0_mi2s_rx_mixer_controls,
18355 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18356 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18357 int4_mi2s_rx_mixer_controls,
18358 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18359 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18360 quinary_mi2s_rx_mixer_controls,
18361 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18362 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18363 pri_tdm_rx_0_mixer_controls,
18364 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18365 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18366 pri_tdm_rx_1_mixer_controls,
18367 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18368 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18369 pri_tdm_rx_2_mixer_controls,
18370 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18371 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18372 pri_tdm_rx_3_mixer_controls,
18373 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18374 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18375 pri_tdm_tx_0_mixer_controls,
18376 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18377 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18378 sec_tdm_rx_0_mixer_controls,
18379 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18380 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18381 sec_tdm_rx_1_mixer_controls,
18382 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18383 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18384 sec_tdm_rx_2_mixer_controls,
18385 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18386 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18387 sec_tdm_rx_3_mixer_controls,
18388 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18389 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18390 sec_tdm_tx_0_mixer_controls,
18391 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18392 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18393 tert_tdm_rx_0_mixer_controls,
18394 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18395 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18396 tert_tdm_tx_0_mixer_controls,
18397 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18398 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18399 tert_tdm_rx_1_mixer_controls,
18400 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
18401 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18402 tert_tdm_rx_2_mixer_controls,
18403 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
18404 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18405 tert_tdm_rx_3_mixer_controls,
18406 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
18407 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18408 tert_tdm_rx_4_mixer_controls,
18409 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
18410 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18411 quat_tdm_rx_0_mixer_controls,
18412 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
18413 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18414 quat_tdm_tx_0_mixer_controls,
18415 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
18416 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18417 quat_tdm_rx_1_mixer_controls,
18418 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
18419 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18420 quat_tdm_rx_2_mixer_controls,
18421 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
18422 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18423 quat_tdm_rx_3_mixer_controls,
18424 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018425 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18426 quin_tdm_rx_0_mixer_controls,
18427 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
18428 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18429 quin_tdm_tx_0_mixer_controls,
18430 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
18431 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18432 quin_tdm_rx_1_mixer_controls,
18433 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
18434 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18435 quin_tdm_rx_2_mixer_controls,
18436 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
18437 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18438 quin_tdm_rx_3_mixer_controls,
18439 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018440 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18441 wsa_cdc_dma_rx_0_mixer_controls,
18442 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
18443 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18444 wsa_cdc_dma_rx_1_mixer_controls,
18445 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018446 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18447 rx_cdc_dma_rx_0_mixer_controls,
18448 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
18449 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18450 rx_cdc_dma_rx_1_mixer_controls,
18451 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
18452 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18453 rx_cdc_dma_rx_2_mixer_controls,
18454 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
18455 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18456 rx_cdc_dma_rx_3_mixer_controls,
18457 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
18458 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18459 rx_cdc_dma_rx_4_mixer_controls,
18460 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
18461 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
18462 rx_cdc_dma_rx_5_mixer_controls,
18463 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
18464 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
18465 rx_cdc_dma_rx_6_mixer_controls,
18466 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
18467 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
18468 rx_cdc_dma_rx_7_mixer_controls,
18469 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018470 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
18471 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
18472 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
18473 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
18474 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
18475 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
18476 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
18477 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
18478 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
18479 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
18480 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
18481 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
18482 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
18483 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
18484 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
18485 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018486 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
18487 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018488 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
18489 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018490 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
18491 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
18492 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
18493 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
18494 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
18495 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
18496 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
18497 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018498 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
18499 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018500 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
18501 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
18502 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
18503 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018504 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18505 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
18506 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18507 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
18508 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18509 tert_auxpcm_rx_mixer_controls,
18510 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
18511 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18512 quat_auxpcm_rx_mixer_controls,
18513 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018514 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18515 quin_auxpcm_rx_mixer_controls,
18516 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018517 /* incall */
18518 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
18519 incall_music_delivery_mixer_controls,
18520 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
18521 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18522 incall_music2_delivery_mixer_controls,
18523 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
18524 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18525 slimbus_4_rx_mixer_controls,
18526 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
18527 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18528 slimbus_6_rx_mixer_controls,
18529 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
18530 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18531 usb_audio_rx_mixer_controls,
18532 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
18533 /* Voice Mixer */
18534 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
18535 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
18536 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
18537 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
18538 SND_SOC_NOPM, 0, 0,
18539 sec_i2s_rx_voice_mixer_controls,
18540 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
18541 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
18542 SND_SOC_NOPM, 0, 0,
18543 sec_mi2s_rx_voice_mixer_controls,
18544 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
18545 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
18546 SND_SOC_NOPM, 0, 0,
18547 slimbus_rx_voice_mixer_controls,
18548 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
18549 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
18550 SND_SOC_NOPM, 0, 0,
18551 bt_sco_rx_voice_mixer_controls,
18552 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
18553 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
18554 SND_SOC_NOPM, 0, 0,
18555 afe_pcm_rx_voice_mixer_controls,
18556 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
18557 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
18558 SND_SOC_NOPM, 0, 0,
18559 aux_pcm_rx_voice_mixer_controls,
18560 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
18561 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
18562 SND_SOC_NOPM, 0, 0,
18563 sec_aux_pcm_rx_voice_mixer_controls,
18564 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
18565 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
18566 SND_SOC_NOPM, 0, 0,
18567 tert_aux_pcm_rx_voice_mixer_controls,
18568 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
18569 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
18570 SND_SOC_NOPM, 0, 0,
18571 quat_aux_pcm_rx_voice_mixer_controls,
18572 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018573 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
18574 SND_SOC_NOPM, 0, 0,
18575 quin_aux_pcm_rx_voice_mixer_controls,
18576 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018577 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
18578 SND_SOC_NOPM, 0, 0,
18579 hdmi_rx_voice_mixer_controls,
18580 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
18581 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
18582 SND_SOC_NOPM, 0, 0,
18583 mi2s_rx_voice_mixer_controls,
18584 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
18585 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
18586 SND_SOC_NOPM, 0, 0,
18587 pri_mi2s_rx_voice_mixer_controls,
18588 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
18589 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
18590 SND_SOC_NOPM, 0, 0,
18591 int0_mi2s_rx_voice_mixer_controls,
18592 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
18593 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
18594 SND_SOC_NOPM, 0, 0,
18595 int4_mi2s_rx_voice_mixer_controls,
18596 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
18597 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
18598 SND_SOC_NOPM, 0, 0,
18599 tert_mi2s_rx_voice_mixer_controls,
18600 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
18601 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
18602 SND_SOC_NOPM, 0, 0,
18603 quat_mi2s_rx_voice_mixer_controls,
18604 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
18605 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
18606 SND_SOC_NOPM, 0, 0,
18607 quin_mi2s_rx_voice_mixer_controls,
18608 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
18609 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
18610 SND_SOC_NOPM, 0, 0,
18611 quat_tdm_rx_2_voice_mixer_controls,
18612 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018613 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
18614 SND_SOC_NOPM, 0, 0,
18615 wsa_cdc_dma_rx_0_voice_mixer_controls,
18616 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
18617 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
18618 SND_SOC_NOPM, 0, 0,
18619 rx_cdc_dma_rx_0_voice_mixer_controls,
18620 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018621 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
18622 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
18623 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018624 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
18625 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
18626 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
18627 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
18628 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
18629 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
18630 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18631 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
18632 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18633 int_bt_a2dp_rx_mixer_controls,
18634 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
18635 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18636 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
18637 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18638 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
18639 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18640 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
18641 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18642 tx_voice2_stub_mixer_controls,
18643 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
18644 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18645 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
18646 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
18647 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
18648 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
18649 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
18650 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18651 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
18652 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
18653 SND_SOC_NOPM, 0, 0,
18654 slimbus_6_rx_voice_mixer_controls,
18655 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
18656 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18657 slimbus_7_rx_voice_mixer_controls,
18658 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
18659 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18660 slimbus_8_rx_voice_mixer_controls,
18661 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
18662 /* port mixer */
18663 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
18664 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
18665 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
18666 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
18667 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
18668 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
18669 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
18670 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
18671 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
18672 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
18673 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
18674 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
18675 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
18676 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
18677 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018678 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
18679 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
18680 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018681 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18682 sbus_1_rx_port_mixer_controls,
18683 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
18684 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18685 bt_sco_rx_port_mixer_controls,
18686 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
18687 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
18688 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
18689 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
18690 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
18691 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
18692 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
18693 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
18694 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
18695 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070018696 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070018697 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
18698 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018699 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
18700 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
18701 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
18702 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
18703 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
18704 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
18705 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
18706 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
18707 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
18708 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18709 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
18710 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18711 primary_mi2s_rx_port_mixer_controls,
18712 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
18713 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18714 sec_mi2s_rx_port_mixer_controls,
18715 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
18716 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18717 tert_mi2s_rx_port_mixer_controls,
18718 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
18719 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18720 quat_mi2s_rx_port_mixer_controls,
18721 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018722 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18723 quin_mi2s_rx_port_mixer_controls,
18724 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018725 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18726 pri_tdm_rx_0_port_mixer_controls,
18727 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
18728 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18729 pri_tdm_rx_1_port_mixer_controls,
18730 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
18731 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18732 pri_tdm_rx_2_port_mixer_controls,
18733 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
18734 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18735 pri_tdm_rx_3_port_mixer_controls,
18736 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
18737 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18738 sec_tdm_rx_0_port_mixer_controls,
18739 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
18740 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18741 sec_tdm_rx_1_port_mixer_controls,
18742 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
18743 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18744 sec_tdm_rx_2_port_mixer_controls,
18745 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
18746 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18747 sec_tdm_rx_3_port_mixer_controls,
18748 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
18749 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18750 tert_tdm_rx_0_port_mixer_controls,
18751 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
18752 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18753 tert_tdm_rx_1_port_mixer_controls,
18754 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
18755 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18756 tert_tdm_rx_2_port_mixer_controls,
18757 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
18758 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18759 tert_tdm_rx_3_port_mixer_controls,
18760 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
18761 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18762 quat_tdm_rx_0_port_mixer_controls,
18763 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
18764 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18765 quat_tdm_rx_1_port_mixer_controls,
18766 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
18767 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18768 quat_tdm_rx_2_port_mixer_controls,
18769 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
18770 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18771 quat_tdm_rx_3_port_mixer_controls,
18772 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018773 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18774 quin_tdm_rx_0_port_mixer_controls,
18775 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
18776 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18777 quin_tdm_rx_1_port_mixer_controls,
18778 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
18779 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18780 quin_tdm_rx_2_port_mixer_controls,
18781 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
18782 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18783 quin_tdm_rx_3_port_mixer_controls,
18784 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018785 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18786 int0_mi2s_rx_port_mixer_controls,
18787 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
18788 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18789 int4_mi2s_rx_port_mixer_controls,
18790 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018791 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18792 wsa_cdc_dma_rx_0_port_mixer_controls,
18793 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
18794 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18795 rx_cdc_dma_rx_0_port_mixer_controls,
18796 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018797 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
18798 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
18799 ARRAY_SIZE(tx_qchat_mixer_controls)),
18800 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
18801 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
18802 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
18803 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
18804 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
18805 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080018806 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
18807 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
18808 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018809 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
18810 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
18811 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018812 /* lsm mixer definitions */
18813 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
18814 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
18815 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
18816 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
18817 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
18818 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
18819 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
18820 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
18821 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
18822 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
18823 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
18824 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
18825 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
18826 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
18827 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
18828 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
18829 /* Virtual Pins to force backends ON atm */
18830 SND_SOC_DAPM_OUTPUT("BE_OUT"),
18831 SND_SOC_DAPM_INPUT("BE_IN"),
18832
18833 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18834 &slim0_rx_vi_fb_lch_mux),
18835 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18836 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018837 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18838 &wsa_rx_0_vi_fb_lch_mux),
18839 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18840 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018841 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
18842 &mi2s_rx_vi_fb_mux),
18843 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
18844 &int4_mi2s_rx_vi_fb_mono_ch_mux),
18845 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
18846 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
18847
18848 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
18849 &voc_ext_ec_mux),
18850 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
18851 &ext_ec_ref_mux_ul1),
18852 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
18853 &ext_ec_ref_mux_ul2),
18854 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
18855 &ext_ec_ref_mux_ul3),
18856 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
18857 &ext_ec_ref_mux_ul4),
18858 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
18859 &ext_ec_ref_mux_ul5),
18860 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
18861 &ext_ec_ref_mux_ul6),
18862 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
18863 &ext_ec_ref_mux_ul8),
18864 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
18865 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018866 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
18867 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018868 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
18869 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018870 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
18871 &ext_ec_ref_mux_ul17),
18872 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
18873 &ext_ec_ref_mux_ul18),
18874 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
18875 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080018876 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
18877 &ext_ec_ref_mux_ul28),
18878 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
18879 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018880};
18881
18882static const struct snd_soc_dapm_route intercon[] = {
18883 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18884 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18885 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18886 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18887 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18888 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18889 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18890 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18891 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18892 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18893 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18894 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18895 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18896 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18897 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18898 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18899 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
18900
18901 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18902 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18903 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18904 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18905 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18906 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18907 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18908 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18909 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18910 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18911 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18912 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18913 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18914 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18915 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18916 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18917 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
18918
18919 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18920 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18921 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18922 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18923 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18924 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18925 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18926 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18927 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18928 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18929 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18930 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18931 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18932 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18933 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18934 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18935 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
18936
18937 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18938 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18939 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18940 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18941 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18942 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18943 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18944 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18945 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18946 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18947 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18948 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18949 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18950 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18951 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18952 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18953 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
18954
18955 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18956 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18957 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18958 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18959 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18960 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18961 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18962 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18963 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18964 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18965 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18966 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18967 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18968 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18969 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18970 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18971 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
18972
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018973 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
18974 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
18975 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
18976 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
18977 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
18978 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
18979 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
18980 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
18981 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
18982 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
18983 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
18984 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
18985 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
18986 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
18987 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
18988 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
18989 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
18990
18991 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
18992 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
18993 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
18994 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
18995 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
18996 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
18997 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
18998 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
18999 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19000 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19001 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19002 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19003 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19004 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19005 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19006 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19007 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19008
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019009 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19010 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19011 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19012 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19013 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19014 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19015 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19016 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19017 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19018 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19019 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19020 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19021 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19022 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19023 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19024 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19025 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19026
19027 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19028 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19029 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19030 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19031 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19032 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19033 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19034 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19035 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19036 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19037 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19038 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19039 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19040 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19041 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19042 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19043 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19044
19045 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19046 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19047 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19048 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19049 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19050 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19051 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19052 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19053 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19054 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19055 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19056 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19057 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19058 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19059 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19060 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19061 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19062
19063 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19064 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19065 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19066 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19067 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19068 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19069 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19070 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19071 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19072 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19073 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19074 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19075 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19076 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19077 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19078 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19079 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19080
19081 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19082 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19083 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19084 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19085 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19086 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19087 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19088 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19089 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19090 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19091 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19092 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19093 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19094 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19095 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19096 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
19097 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19098
19099 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19100 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19101 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19102 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19103 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19104 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19105 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19106 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19107 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19108 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19109 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19110 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19111 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19112 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19113 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19114 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
19115 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19116
19117 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19118 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19119 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19120 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19121 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19122 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19123 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19124 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19125 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19126 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19127 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19128 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19129 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19130 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19131 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19132 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
19133 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19134
19135 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19136 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19137 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19138 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19139 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19140 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19141 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19142 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19143 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19144 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19145 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19146 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19147 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19148 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19149 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19150 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
19151 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19152
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019153 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19154 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19155 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19156 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19157 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19158 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19159 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19160 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19161 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19162 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19163 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19164 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19165 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19166 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19167 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19168 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
19169 {"HDMI", NULL, "HDMI Mixer"},
19170
19171 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19172 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19173 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19174 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19175 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19176 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19177 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19178 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19179 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19180 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19181 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19182 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19183 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19184 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19185 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19186 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
19187 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19188
Karthikeyan Mani57550082018-05-03 18:43:58 -070019189 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19190 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19191 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19192 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19193 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19194 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19195 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19196 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19197 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19198 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19199 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19200 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19201 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19202 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19203 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19204 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
19205 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19206
Ralf Herzc8701f72018-06-20 11:37:35 +020019207 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19208 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19209 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19210 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19211 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19212 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19213 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19214 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19215 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19216 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19217 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19218 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19219 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19220 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19221 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19222 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19223 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19224
19225 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19226 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19227 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19228 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19229 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19230 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19231 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19232 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19233 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19234 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19235 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19236 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19237 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19238 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19239 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19240 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19241 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019242
19243 /* incall */
19244 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19245 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19246 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19247 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19248 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19249 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19250 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19251 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19252 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19253 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19254 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19255 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19256 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19257 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19258 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19259
19260 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19261 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19262 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19263 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19264 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19265 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19266 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19267 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19268 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19269 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19270 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19271 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19272 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19273 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19274 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19275 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19276 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19277
19278 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19279 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19280 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19281 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19282 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19283 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19284 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19285 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19286 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19287 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19288 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19289 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19290 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19291 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19292 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19293 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19294 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19295
19296 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19297 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19298 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19299 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19300 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19301 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19302 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19303 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19304 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19305 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19306 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19307 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19308 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19309 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19310 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19311 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19312 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19313
19314 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19315 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19316 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19317 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19318 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19319 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19320 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19321 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19322 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19323 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19324 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19325 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19326 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19327 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19328 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19329 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019330 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19331 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019332 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19333 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19334 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19335 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19336 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19337 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019338 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19339 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019340 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019341 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019342 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19343 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19344 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19345 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19346 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19347 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019348 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019349 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19350 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19351 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019352 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19353 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19354 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019355 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019356 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019357 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19358 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019359 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019360 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
19361 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
19362
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019363 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19364 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19365 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19366 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19367 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19368 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19369 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19370 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19371 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19372 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19373 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19374 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19375 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19376 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19377 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19378 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19379 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
19380
19381 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19382 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19383 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19384 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19385 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19386 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19387 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19388 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19389 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19390 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19391 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19392 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19393 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19394 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19395 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19396 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
19397
19398 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19399 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19400 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19401 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19402 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19403 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19404 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19405 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19406 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19407 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19408 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19409 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19410 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19411 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19412 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
19413
19414 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19415 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19416 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19417 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19418 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19419 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19420 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19421 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19422 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19423 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19424 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19425 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19426 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19427 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19428 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
19429
19430 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19431 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
19432
19433 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19434 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19435
19436 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19437 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19438 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19439 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19440 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19441 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19442 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19443 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19444 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19445 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19446 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19447 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19448 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19449 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19450 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19451 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
19452
19453 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19454 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19455 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19456 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19457 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19458 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19459 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19460 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19461 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19462 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19463 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19464 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19465 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19466 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19467 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19468 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
19469
19470 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19471 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19472 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19473 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19474 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19475 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19476 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19477 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19478 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19479 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19480 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19481 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19482 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19483 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19484 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19485 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
19486
19487 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19488 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19489 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19490 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19491 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19492 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19493 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19494 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19495 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19496 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19497 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19498 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19499 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19500 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19501 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19502 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19503 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19504 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
19505
19506 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19507 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19508 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19509 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19510 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19511 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19512 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19513 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19514 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19515 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19516 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19517 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19518 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19519 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19520 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19521 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019522 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019523 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
19524
19525 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19526 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19527 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19528 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19529 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19530 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19531 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19532 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19533 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19534 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19535 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19536 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19537 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19538 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19539 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19540 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019541 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019542 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
19543
19544 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19545 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19546 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19547 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19548 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19549 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19550 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19551 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19552 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19553 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19554 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19555 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19556 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19557 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19558 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19559 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019560 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019561 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
19562
19563 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19564 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19565 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19566 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19567 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19568 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19569 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19570 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19571 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19572 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19573 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19574 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19575 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19576 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19577 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19578 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019579 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019580 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
19581
19582 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19583 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19584 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19585 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19586 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19587 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19588 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19589 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19590 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19591 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19592 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19593 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19594 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19595 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19596 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19597 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19598 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
19599
19600 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19601 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19602 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19603 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19604 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19605 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19606 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19607 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19608 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19609 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19610 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19611 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19612 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19613 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19614 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19615 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019616 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019617 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
19618
19619 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19620 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19621 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19622 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19623 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19624 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19625 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19626 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19627 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19628 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19629 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19630 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19631 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19632 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19633 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19634 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019635 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019636 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
19637
19638 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19639 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19640 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19641 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19642 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19643 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19644 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19645 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19646 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19647 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19648 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19649 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19650 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19651 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19652 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19653 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019654 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019655 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
19656
19657 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19658 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19659 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19660 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19661 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19662 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19663 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19664 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19665 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19666 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19667 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19668 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19669 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19670 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19671 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19672 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019673 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019674 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
19675
19676 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19677 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19678 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19679 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19680 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19681 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19682 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19683 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19684 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19685 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19686 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19687 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19688 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19689 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19690 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19691 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19692 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
19693
19694 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19695 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19696 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19697 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19698 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19699 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19700 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19701 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19702 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19703 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19704 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19705 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19706 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19707 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19708 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19709 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019710 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019711 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
19712
19713 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19714 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19715 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19716 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19717 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19718 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19719 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19720 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19721 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19722 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19723 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19724 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19725 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19726 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19727 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19728 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19729 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
19730
19731 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19732 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19733 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19734 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19735 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19736 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19737 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19738 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19739 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19740 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19741 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19742 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19743 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19744 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19745 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19746 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019747 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019748 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
19749
19750 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19751 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19752 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19753 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19754 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19755 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19756 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19757 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19758 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19759 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19760 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19761 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19762 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19763 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19764 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19765 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019766 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019767 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
19768
19769 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19770 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19771 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19772 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19773 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19774 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19775 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19776 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19777 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19778 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19779 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19780 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19781 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19782 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19783 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19784 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019785 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019786 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
19787
19788 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19789 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19790 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19791 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19792 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19793 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19794 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19795 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19796 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19797 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19798 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19799 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19800 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19801 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19802 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19803 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019804 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019805 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
19806
19807 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19808 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19809 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19810 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19811 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19812 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19813 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19814 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19815 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19816 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19817 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19818 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19819 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19820 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19821 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19822 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19823 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019824 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019825 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
19826
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019827 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19828 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19829 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19830 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19831 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19832 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19833 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19834 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19835 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19836 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19837 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19838 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19839 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19840 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19841 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19842 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19843 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
19844
19845 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19846 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19847 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19848 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19849 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19850 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19851 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19852 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19853 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19854 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19855 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19856 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19857 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19858 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19859 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19860 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19861 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019862 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019863 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
19864
19865 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19866 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19867 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19868 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19869 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19870 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19871 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19872 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19873 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19874 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19875 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19876 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19877 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19878 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19879 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19880 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19881 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019882 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019883 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
19884
19885 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19886 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19887 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19888 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19889 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19890 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19891 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19892 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19893 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19894 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19895 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19896 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19897 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19898 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19899 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19900 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19901 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019902 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019903 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
19904
Rohit Kumara5077932017-09-10 22:05:05 +053019905 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19906 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19907 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19908 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19909 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19910 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19911 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19912 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19913 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19914 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19915 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19916 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19917 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19918 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19919 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19920 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19921 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019922 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019923 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
19924
19925 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19926 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19927 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19928 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19929 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19930 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19931 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19932 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19933 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19934 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19935 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19936 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19937 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19938 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19939 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19940 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19941 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
19942
19943 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19944 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19945 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19946 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19947 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19948 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19949 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19950 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19951 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19952 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19953 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19954 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19955 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19956 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19957 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19958 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19959 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019960 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019961 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
19962
19963 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19964 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19965 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19966 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19967 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19968 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19969 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19970 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19971 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19972 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19973 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19974 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19975 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19976 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19977 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19978 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19979 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019980 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019981 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
19982
19983 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19984 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19985 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19986 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19987 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19988 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19989 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19990 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19991 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19992 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19993 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19994 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19995 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19996 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19997 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19998 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19999 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020000 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020001 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20002
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020003 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20004 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20005 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20006 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20007 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020008 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020009 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020010 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20011 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20012 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20013 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20014 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20015 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20016 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20017 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20018 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20019 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20020 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20021 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20022 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20023 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20024 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020025 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020026 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20027 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20028 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020029 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020030 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20031 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020032 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20033 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20034 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020035 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020036 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20037 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20038 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020039 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020040 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020041 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20042 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20043 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020044 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20045 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20046 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20047 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20048 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20049 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20050 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20051 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20052 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20053 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20054 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020055 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020056 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20057 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20058 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020059 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020060 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020061 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20062 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20063 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020064 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020065 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020066 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20067 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20068 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20069 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20070 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020071 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20072 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20073 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20074 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020075 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020076
20077 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20078 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20079 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20080 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20081 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20082 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20083 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20084 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20085 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20086 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20087 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20088 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20089 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20090 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20091 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20092 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020093 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20094 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20095 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20096 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020097 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20098 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20099 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20100 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20101 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020102 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20103 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20104 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20105 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20106 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20107 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020108 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20109 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020110
20111 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20112 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20113 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20114 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20115 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20116 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20117 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20118 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20119 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20120 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20121 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20122 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20123 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20124 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20125 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20126 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020127 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20128 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20129 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20130 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020131 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20132 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20133 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20134 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20135 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020136 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20137 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20138 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20139 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20140 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20141 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020142 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20143 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020144
20145 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20146 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20147 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20148 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20149 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20150 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20151 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20152 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20153 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20154 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20155 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20156 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20157 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20158 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20159 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20160 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020161 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20162 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20163 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20164 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020165 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20166 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20167 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20168 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20169 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020170 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20171 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20172 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20173 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20174 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20175 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020176 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20177 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020178
20179 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20180 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20181 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20182 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20183 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20184 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20185 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20186 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20187 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20188 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20189 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20190 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20191 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20192 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20193 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20194 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020195 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20196 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20197 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20198 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020199 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20200 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20201 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20202 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20203 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020204 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20205 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20206 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20207 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20208 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20209 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020210 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20211 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020212
20213 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20214 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20215 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20216 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20217 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20218 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20219 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20220 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20221 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20222 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20223 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20224 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20225 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20226 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20227 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20228 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020229 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20230 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20231 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20232 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020233 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20234 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20235 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20236 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20237 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020238 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20239 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20240 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20241 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20242 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20243 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020244 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20245 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020246
20247 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20248 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20249 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20250 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20251 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20252 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20253 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20254 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20255 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20256 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20257 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20258 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20259 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20260 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20261 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20262 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020263 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20264 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20265 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20266 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020267 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20268 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20269 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20270 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20271 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020272 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20273 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20274 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20275 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20276 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20277 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020278 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20279 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020280
20281 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20282 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20283 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20284 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20285 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20286 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20287 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20288 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20289 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20290 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20291 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20292 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20293 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20294 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20295 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20296 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020297 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20298 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20299 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20300 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020301 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20302 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20303 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20304 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20305 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20306 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020307 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20308 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20309 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20310 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20311 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20312 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020313 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20314 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020315
20316 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20317 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20318 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20319 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20320 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20321 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20322 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20323 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020324 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20325 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20326 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20327 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020328 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20329 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20330 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20331 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20332 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20333 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020334 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20335 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20336 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20337 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20338 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20339 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020340 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20341 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020342
Laxminath Kasam38070be2017-08-17 18:21:59 +053020343 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20344 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20345 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20346 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20347 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20348 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20349 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20350 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020351 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20352 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20353 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20354 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20355 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20356 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20357
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020358 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20359 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20360 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20361 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020362 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020363 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20364 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20365 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20366 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20367 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20368 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20369 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20370 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20371 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20372 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20373 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20374 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20375 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20376 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20377 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20378 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020379 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20380 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20381 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20382 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020383 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20384 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20385 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20386 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20387 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20388 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020389 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20390 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20391 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20392 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20393 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20394 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020395 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20396 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020397
Derek Chen07c6d1c2018-07-05 10:39:25 -070020398 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20399 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20400 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20401 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20402 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20403 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20404 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20405 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20406 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20407 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20408 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20409 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20410 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20411 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20412 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20413 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20414 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20415 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20416 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20417 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20418 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20419 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
20420
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020421 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20422 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20423 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20424 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20425 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20426 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020427 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020428
Asish Bhattacharya34504582017-08-08 12:55:01 +053020429 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20430 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20431 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20432 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20433 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20434 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20435 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20436 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20437 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20438 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20439 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20440 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20441 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20442 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20443 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20444 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20445 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020446 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20447 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20448 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20449 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20450 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20451 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020452 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20453 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20454 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20455 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20456 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20457 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020458 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20459 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020460
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020461 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20462 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20463 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20464 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20465 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20466 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20467
20468 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20469 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20470 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20471 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20472 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20473 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20474
20475 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20476 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20477 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20478 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20479 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20480 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20481
20482 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20483 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20484 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20485 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20486 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20487 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20488
20489 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20490 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20491 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20492 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20493 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20494 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20495
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020496 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20497 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20498 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20499 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20500 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20501 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20502 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20503 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20504 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20505 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20506 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20507 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20508 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20509 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20510 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20511 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20512 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20513 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
20514
20515 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20516 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20517 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20518 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20519 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20520 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20521 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20522 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20523 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20524 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20525 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20526 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20527 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20528 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20529 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20530 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20531 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20532 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
20533
20534 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20535 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20536 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20537 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20538 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20539 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20540 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20541 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20542 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20543 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20544 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20545 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20546 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20547 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20548 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20549 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20550 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
20551
20552 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20553 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20554 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20555 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20556 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20557 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20558 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20559 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20560 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20561 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20562 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20563 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20564 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20565 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20566 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20567 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20568 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
20569
20570 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20571 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20572 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020573 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020574 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20575 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20576 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020577 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20578 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020579 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20580 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020581 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020582 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20583 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020584 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020585 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20586 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20587 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020588 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20589 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020590 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20591 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20592 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20593
20594 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
20595 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
20596 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020597 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020598 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
20599 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
20600 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020601 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
20602 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020603 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
20604 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020605 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020606 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
20607 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20608 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
20609 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
20610 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
20611 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
20612 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
20613 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
20614 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020615 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020616 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020617 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
20618 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
20619 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
20620 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020621 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020622 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
20623 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020624
20625 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20626 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20627 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20628 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20629 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20630 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20631 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20632 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20633 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20634 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20635 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20636 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20637 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20638 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20639 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20640 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020641 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020642 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
20643
20644 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20645 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20646 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20647 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20648 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20649 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20650 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20651 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20652 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20653 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20654 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20655 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20656 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20657 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20658 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20659 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020660 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020661 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
20662
20663 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20664 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20665 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20666 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20667 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20668 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20669 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20670 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20671 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20672 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20673 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20674 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20675 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20676 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20677 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20678 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20679 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
20680
20681 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20682 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20683 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20684 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20685 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20686 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20687 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20688 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20689 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20690 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20691 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20692 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20693 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20694 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20695 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20696 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20697 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
20698
Rohit Kumara5077932017-09-10 22:05:05 +053020699 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20700 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20701 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20702 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20703 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20704 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20705 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20706 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20707 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20708 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20709 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20710 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20711 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20712 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20713 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20714 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20715 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
20716
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020717 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20718 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20719 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20720 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20721 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20722 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
20723
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020724 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
20725 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20726 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20727 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
20728
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020729 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20730 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20731 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20732 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20733 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20734 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
20735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020736 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
20737 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020738 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20739 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20740 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20741 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
20742
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020743 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
20744 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020745 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20746 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20747 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20748 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
20749
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020750 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20751 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020752 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20753 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20754 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20755 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
20756
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020757 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
20758 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020759 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20760 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20761 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20762 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
20763
Karthikeyan Mani57550082018-05-03 18:43:58 -070020764 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
20765 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20766 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
20767 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20768 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20769 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
20770
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020771 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20772 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20773 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20774 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20775 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020776 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
20777
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020778 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20779 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20780 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20781 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20782 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20783 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
20784
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020785 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20786 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020787 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20788 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20789 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20790 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
20791
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020792 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20793 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020794 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20795 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20796 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20797 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
20798
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020799 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20800 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020801 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20802 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20803 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20804 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
20805
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020806 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20807 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020808 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20809 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20810 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20811 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
20812
Rohit Kumara5077932017-09-10 22:05:05 +053020813 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20814 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053020815 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20816 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20817 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20818 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
20819
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020820 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20821 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20822 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20823 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20824 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20825 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
20826 {"HDMI", NULL, "HDMI_DL_HL"},
20827
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020828 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020829 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20830 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20831 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080020832 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020833 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
20834
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020835 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020836 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20837 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20838 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20839 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20840 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
20841
20842 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20843 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20844 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20845 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20846 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20847 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
20848
20849 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20850 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20851 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20852 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20853 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20854 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
20855
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020856 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020857 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20858 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20859 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20860 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20861 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
20862
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020863 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020864 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20865 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20866 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20867 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
20868
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020869 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020870 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20871 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20872 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20873 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
20874
20875 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20876 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
20877
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053020878 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20879 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20880 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
20881
20882 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20883 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20884 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
20885
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020886 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20887 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20888 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20889 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020890 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020891 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070020892 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020893 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020894 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
20895 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
20896
20897 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20898 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20899 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20900 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20901 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
20902 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20903 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
20904 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
20905 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
20906 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20907
20908 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20909 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20910 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20911 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20912
20913 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20914 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20915 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20916 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20917
20918 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20919 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20920 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20921 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20922
20923 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20924 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20925 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20926 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20927
20928 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20929 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20930 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20931 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20932
20933 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20934 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20935 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20936 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20937
20938 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20939 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20940 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20941 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20942
Laxminath Kasam38070be2017-08-17 18:21:59 +053020943 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20944 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20945 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20946 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20947 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
20948 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20949 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
20950 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
20951 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
20952 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070020953
20954 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20955 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20956 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20957 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20958
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020959 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20960 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20961 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20962 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20963
20964 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20965 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20966 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20967 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20968
20969 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20970 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20971 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20972 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20973
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020974 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20975 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20976 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20977 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20978
20979 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20980 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20981 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20982 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080020983
20984 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20985 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20986 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20987 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20988 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20989 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20990 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20991 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20992
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020993 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
20994 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
20995 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
20996 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
20997 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
20998 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
20999 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21000 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021001 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021002 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021003 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21004 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21005 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021006 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21007 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021008
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021009 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21010 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21011 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21012 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21013 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21014 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21015 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21016 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21017 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21018 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21019 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21020 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21021 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21022 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21023 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021024 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021025 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021026 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21027 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21028 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21029 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21030 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21031 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021032 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21033
21034 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21035 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21036 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21037 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21038 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21039 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21040 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21041 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21042 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21043 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21044 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21045 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21046 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21047 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21048 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021049 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021050 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21051 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21052 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21053 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21054 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21055 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021056 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21057
21058 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21059 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21060 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21061 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21062 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21063 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21064 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21065 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21066 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21067 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21068 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21069 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21070 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21071 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021072 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021073 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21074 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21075
21076 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21077 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21078 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21079 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21080 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21081 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21082 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21083 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21084 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21085 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21086 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21087 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21088 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21089 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21090 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021091 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21092 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21093 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021094 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21095 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21096 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021097 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21098 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21099 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21100 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21101 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21102 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21103 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21104 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021105 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21106 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021107 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21108
21109 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21110 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21111 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21112 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21113 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21114 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21115 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21116 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021117 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21118 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021119 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21120
21121
21122 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21123 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21124 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21125 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21126 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21127 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21128 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21129 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021130 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21131 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021132 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21133
21134
21135 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21136 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21137 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21138 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21139 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21140 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21141 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21142 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021143 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21144 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021145 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21146
21147 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21148 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21149 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21150 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21151 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21152 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21153 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21154 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021155 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21156 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021157 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21158
21159 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21160 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21161 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21162 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21163 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21164 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021165 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21166 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021167 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21168
21169 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21170 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21171 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21172 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21173 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21174 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021175 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21176 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021177 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21178
21179 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21180 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21181 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21182 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21183 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21184 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021185 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21186 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021187 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21188
21189
21190 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21191 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21192 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21193 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21194 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21195 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21196 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21197 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21198 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21199 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21200 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021201 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021202 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21203 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21204 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21205 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21206 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21207 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21208
21209 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21210 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21211 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21212 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21213 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21214 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21215 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21216 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21217 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21218 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21219 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21220 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021221 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21222 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021223 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021224 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021225 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021226 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21227 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21228 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21229 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21230
21231 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21232 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21233 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21234 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21235 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21236 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21237 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21238 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21239 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21240 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21241 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21242
21243 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21244 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021245 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21246 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021247 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21248 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21249 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21250 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21251 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21252 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21253 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21254 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21255 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21256 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21257
21258 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21259 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21260 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21261 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21262 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21263 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21264 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21265 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21266 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21267 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21268 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21269 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21270 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21271 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21272 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21273 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
21274 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21275 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21276 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21277 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
21278 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21279 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21280 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21281 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21282 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21283 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21284 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21285 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21286 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21287 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21288 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21289 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021290 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21291 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21292 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21293 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21294 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21295 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21296 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21297 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021298
21299 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21300 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21301 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21302 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21303 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21304 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21305 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21306 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21307 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21308 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21309 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21310 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21311 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21312 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21313 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21314 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021315 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21316 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21317 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21318 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021319 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
21320
21321 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21322 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21323 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21324 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21325 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21326 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21327 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21328 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21329 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21330 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21331 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21332 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21333 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21334 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21335 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21336 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021337 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21338 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21339 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21340 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021341 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
21342
21343 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21344 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21345 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21346 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21347 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21348 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21349 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21350 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21351 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21352 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21353 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21354 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21355 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21356 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21357 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21358 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021359 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21360 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21361 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21362 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021363 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
21364
21365 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21366 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21367 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21368 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21369 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21370 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21371 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21372 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21373 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21374 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21375 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21376 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21377 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21378 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21379 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21380 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021381 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21382 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21383 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21384 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021385 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
21386
21387 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21388 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21389 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21390 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21391 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21392 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21393 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21394 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21395 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21396 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21397 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21398 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21399 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21400 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21401 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21402 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021403 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21404 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21405 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21406 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021407 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
21408
21409 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21410 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21411 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21412 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21413 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21414 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21415 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21416 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21417 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21418 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21419 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21420 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21421 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21422 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21423 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21424 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021425 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21426 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21427 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21428 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021429 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
21430
21431 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21432 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21433 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21434 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21435 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21436 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21437 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21438 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21439 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21440 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21441 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21442 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21443 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21444 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21445 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21446 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021447 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21448 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21449 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21450 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021451 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
21452
21453 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21454 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21455 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21456 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21457 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21458 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21459 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21460 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21461 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21462 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21463 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21464 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21465 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21466 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21467 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21468 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021469 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21470 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21471 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21472 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021473 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
21474
21475 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21476 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21477 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21478 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21479 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21480 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21481 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21482 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21483 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21484 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21485 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21486 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21487 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21488 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21489 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21490 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021491 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21492 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21493 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21494 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021495 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
21496
21497 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21498 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21499 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21500 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21501 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21502 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21503 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21504 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21505 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21506 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21507 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21508 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21509 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21510 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21511 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21512 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021513 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21514 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21515 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21516 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021517 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
21518
21519 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21520 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21521 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21522 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21523 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21524 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21525 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21526 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21527 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21528 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21529 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21530 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21531 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21532 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21533 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21534 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021535 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21536 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21537 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21538 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021539 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
21540
21541 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21542 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21543 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21544 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21545 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21546 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21547 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21548 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21549 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21550 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21551 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21552 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21553 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21554 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21555 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21556 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021557 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21558 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21559 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21560 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021561 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
21562
21563 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21564 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21565 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21566 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21567 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21568 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21569 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21570 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21571 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21572 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21573 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21574 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21575 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21576 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21577 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21578 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021579 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21580 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21581 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21582 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021583 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
21584
21585 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21586 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21587 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21588 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21589 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21590 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21591 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21592 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21593 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21594 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21595 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21596 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21597 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21598 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21599 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21600 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021601 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21602 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21603 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21604 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021605 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
21606
21607 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21608 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21609 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21610 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21611 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21612 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21613 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21614 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21615 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21616 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21617 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21618 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21619 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21620 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21621 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21622 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021623 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21624 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21625 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21626 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021627 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
21628
21629 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21630 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21631 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21632 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21633 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21634 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21635 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21636 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21637 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21638 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21639 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21640 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21641 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21642 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21643 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21644 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021645 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21646 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21647 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21648 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021649 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
21650
Rohit Kumara5077932017-09-10 22:05:05 +053021651 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21652 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21653 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21654 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21655 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21656 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21657 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21658 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21659 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21660 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21661 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21662 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21663 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21664 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21665 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21666 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21667 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21668 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21669 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21670 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021671 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021672
21673 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21674 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21675 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21676 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21677 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21678 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21679 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21680 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21681 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21682 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21683 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21684 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21685 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21686 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21687 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21688 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21689 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21690 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21691 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21692 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021693 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021694
21695 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21696 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21697 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21698 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21699 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21700 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21701 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21702 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21703 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21704 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21705 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21706 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21707 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21708 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21709 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21710 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21711 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21712 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21713 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21714 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021715 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021716
21717 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21718 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21719 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21720 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21721 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21722 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21723 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21724 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21725 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21726 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21727 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21728 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21729 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21730 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21731 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21732 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21733 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21734 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21735 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21736 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021737 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021738
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021739 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21740 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21741 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21742 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021743 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021744 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21745 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21746 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21747 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21748 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21749 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
21750
21751 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21752 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21753 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21754 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021755 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021756 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21757 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21758 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21759 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21760 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21761 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
21762
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021763 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21764 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21765 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080021766 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21767 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21768
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021769
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021770 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21771 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21772 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21773 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21774 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21775 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21776 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21777 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21778 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021779 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021780 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21781 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21782 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21783 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21784 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021785 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021786 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21787 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
21788 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21789 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21790 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
21791 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21792 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
21793 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
21794 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
21795 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
21796
21797
21798 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21799 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21800 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21801 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21802 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021803 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021804 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
21805
21806 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21807 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21808 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021809 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021810 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
21811
21812 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21813 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21814 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21815 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
21816
21817 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21818 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21819 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21820 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
21821
Rohit Kumara5077932017-09-10 22:05:05 +053021822 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21823 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21824 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21825 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
21826
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021827 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21828 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21829 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21830 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21831 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21832 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21833 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21834 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021835 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021836 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
21837 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21838 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21839 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21840 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21841 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21842 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21843 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21844 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21845 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21846 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
21847
21848 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21849 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21850 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21851 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21852 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21853 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21854 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21855 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21856 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21857 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21858 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21859 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
21860
21861 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21862 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21863 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21864 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21865 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21866 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21867 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21868 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21869 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21870 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21871 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21872 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
21873
kunleizdf5a00a2017-11-27 15:27:36 +080021874 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21875 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021876 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080021877
21878 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21879 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021880 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080021881
21882 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21883 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021884 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
21885
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021886 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
21887 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021888 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21889 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21890 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21891 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
21892
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021893 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
21894 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021895 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21896 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21897 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21898 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
21899
21900 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21901 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21902 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21903 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
21904 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21905 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21906 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
21907 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
21908 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21909 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
21910 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
21911 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
21912 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
21913
21914 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21915 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21916 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21917 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21918 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21919 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21920 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21921 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21922 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21923 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21924 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21925 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21926 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
21927
21928 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21929 {"HDMI", NULL, "HDMI_RX Port Mixer"},
21930
21931 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21932 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
21933
Karthikeyan Mani57550082018-05-03 18:43:58 -070021934 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
21935 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
21936
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021937 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21938 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
21939
21940 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21941 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21942 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
21943
21944 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21945 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21946 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21947 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021948 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021949 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21950 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21951 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21952 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021953 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021954 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
21955
21956 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21957 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21958 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21959 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021960 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021961 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21962 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21963 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021964 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021965 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
21966
21967 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21968 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21969 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21970 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021971 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021972 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21973 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21974 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
21975
21976 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21977 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21978 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21979 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021980 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021981 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21982 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21983 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21984 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21985 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
21986
Rohit Kumara5077932017-09-10 22:05:05 +053021987 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21988 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21989 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21990 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21991 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21992 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21993 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21994 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
21995
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021996 /* Backend Enablement */
21997
21998 {"BE_OUT", NULL, "PRI_I2S_RX"},
21999 {"BE_OUT", NULL, "SEC_I2S_RX"},
22000 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22001 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22002 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22003 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22004 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22005 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22006 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22007 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22008 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
22009 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22010 {"BE_OUT", NULL, "HDMI"},
22011 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022012 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022013 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22014 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022015 {"BE_OUT", NULL, "MI2S_RX"},
22016 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22017 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22018 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22019 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22020 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22021 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22022 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22023 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022024 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22025 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22026 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022027 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22028 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22029 {"BE_OUT", NULL, "INT_FM_RX"},
22030 {"BE_OUT", NULL, "PCM_RX"},
22031 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22032 {"BE_OUT", NULL, "AUX_PCM_RX"},
22033 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22034 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22035 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022036 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022037 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22038 {"BE_OUT", NULL, "INT_FM_RX"},
22039 {"BE_OUT", NULL, "PCM_RX"},
22040 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22041 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22042 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22043 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22044 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22045 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22046 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22047 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22048 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22049 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22050 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
22051 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22052 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22053 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22054 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22055 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22056 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22057 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22058 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22059 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022060 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22061 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22062 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22063 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022064 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22065 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022066 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22067 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22068 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22069 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22070 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22071 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22072 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22073 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022074
22075 {"PRI_I2S_TX", NULL, "BE_IN"},
22076 {"MI2S_TX", NULL, "BE_IN"},
22077 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22078 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22079 {"PRI_MI2S_TX", NULL, "BE_IN"},
22080 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022081 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022082 {"INT2_MI2S_TX", NULL, "BE_IN"},
22083 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022084 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022085 {"INT5_MI2S_TX", NULL, "BE_IN"},
22086 {"SEC_MI2S_TX", NULL, "BE_IN"},
22087 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22088 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22089 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22090 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22091 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22092 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22093 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22094 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22095 {"SLIMBUS_8_TX", NULL, "BE_IN" },
22096 {"USB_AUDIO_TX", NULL, "BE_IN" },
22097 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22098 {"INT_FM_TX", NULL, "BE_IN"},
22099 {"PCM_TX", NULL, "BE_IN"},
22100 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22101 {"BE_OUT", NULL, "STUB_RX"},
22102 {"STUB_TX", NULL, "BE_IN"},
22103 {"STUB_1_TX", NULL, "BE_IN"},
22104 {"BE_OUT", NULL, "AUX_PCM_RX"},
22105 {"AUX_PCM_TX", NULL, "BE_IN"},
22106 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22107 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22108 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022109 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022110 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22111 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22112 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22113 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022114 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22115 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022116 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22117 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22118 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22119 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22120 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022121 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22122 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022123 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22124 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22125 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22126 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22127 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22128 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22129 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22130 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22131 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22132 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22133 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22134 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22135 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22136 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22137 {"TERT_TDM_TX_3", NULL, "BE_IN"},
22138 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22139 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22140 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22141 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022142 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22143 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22144 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22145 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022146 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22147 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22148 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22149 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22150 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022151 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22152 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22153 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22154 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22155 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22156 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022157 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22158 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022159};
22160
22161static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22162 struct snd_pcm_hw_params *params)
22163{
22164 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22165 unsigned int be_id = rtd->dai_link->id;
22166
22167 if (be_id >= MSM_BACKEND_DAI_MAX) {
22168 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22169 return -EINVAL;
22170 }
22171
22172 mutex_lock(&routing_lock);
22173 msm_bedais[be_id].sample_rate = params_rate(params);
22174 msm_bedais[be_id].channel = params_channels(params);
22175 msm_bedais[be_id].format = params_format(params);
22176 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22177 __func__, msm_bedais[be_id].sample_rate,
22178 msm_bedais[be_id].format, be_id);
22179 mutex_unlock(&routing_lock);
22180 return 0;
22181}
22182
22183static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22184{
22185 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22186 unsigned int be_id = rtd->dai_link->id;
22187 int i, session_type, path_type, topology;
22188 struct msm_pcm_routing_bdai_data *bedai;
22189 struct msm_pcm_routing_fdai_data *fdai;
22190
22191 pr_debug("%s: substream->pcm->id:%s\n",
22192 __func__, substream->pcm->id);
22193
22194 if (be_id >= MSM_BACKEND_DAI_MAX) {
22195 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22196 return -EINVAL;
22197 }
22198
22199 bedai = &msm_bedais[be_id];
22200 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22201 0 : 1);
22202 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22203 path_type = ADM_PATH_PLAYBACK;
22204 else
22205 path_type = ADM_PATH_LIVE_REC;
22206
22207 mutex_lock(&routing_lock);
22208 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22209 if (!is_mm_lsm_fe_id(i))
22210 continue;
22211 fdai = &fe_dai_map[i][session_type];
22212 if (fdai->strm_id != INVALID_SESSION) {
22213 int idx;
22214 int port_id;
22215 unsigned long copp =
22216 session_copp_map[i][session_type][be_id];
22217 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22218 if (test_bit(idx, &copp))
22219 break;
22220 fdai->be_srate = bedai->sample_rate;
22221 port_id = bedai->port_id;
22222 topology = adm_get_topology_for_port_copp_idx(port_id,
22223 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022224 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022225 adm_close(bedai->port_id, fdai->perf_mode, idx);
22226 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22227 __func__, copp, i, session_type, be_id,
22228 topology);
22229 clear_bit(idx,
22230 &session_copp_map[i][session_type][be_id]);
22231 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22232 (bedai->passthr_mode[i] == LEGACY_PCM))
22233 msm_pcm_routing_deinit_pp(bedai->port_id,
22234 topology);
22235 }
22236 }
22237
22238 bedai->active = 0;
22239 bedai->sample_rate = 0;
22240 bedai->channel = 0;
22241 for (i = 0; i < MSM_FRONTEND_DAI_MAX; i++) {
22242 if (bedai->passthr_mode[i] != LISTEN)
22243 bedai->passthr_mode[i] = LEGACY_PCM;
22244 }
22245 mutex_unlock(&routing_lock);
22246
22247 return 0;
22248}
22249
22250static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22251{
22252 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22253 unsigned int be_id = rtd->dai_link->id;
22254 int i, path_type, topology;
22255 int session_type = INVALID_SESSION;
22256 struct msm_pcm_routing_bdai_data *bedai;
22257 u32 channels, sample_rate;
22258 uint16_t bits_per_sample = 16, voc_path_type;
22259 struct msm_pcm_routing_fdai_data *fdai;
22260 u32 session_id;
22261 struct media_format_info voc_be_media_format;
22262 bool is_lsm;
22263
22264 pr_debug("%s: substream->pcm->id:%s\n",
22265 __func__, substream->pcm->id);
22266
22267 if (be_id >= MSM_BACKEND_DAI_MAX) {
22268 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22269 return -EINVAL;
22270 }
22271
22272 bedai = &msm_bedais[be_id];
22273
22274 mutex_lock(&routing_lock);
22275 if (bedai->active == 1)
22276 goto done; /* Ignore prepare if back-end already active */
22277
22278 /* AFE port is not active at this point. However, still
22279 * go ahead setting active flag under the notion that
22280 * QDSP6 is able to handle ADM starting before AFE port
22281 * is started.
22282 */
22283 bedai->active = 1;
22284
22285 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22286 if (!(is_mm_lsm_fe_id(i) &&
22287 route_check_fe_id_adm_support(i)))
22288 continue;
22289
22290 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
22291 if (bedai->passthr_mode[i] != LEGACY_PCM)
22292 path_type = ADM_PATH_COMPRESSED_RX;
22293 else
22294 path_type = ADM_PATH_PLAYBACK;
22295 session_type = SESSION_TYPE_RX;
22296 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +020022297 if ((bedai->passthr_mode[i] != LEGACY_PCM) &&
22298 (bedai->passthr_mode[i] != LISTEN))
22299 path_type = ADM_PATH_COMPRESSED_TX;
22300 else
22301 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022302 session_type = SESSION_TYPE_TX;
22303 }
22304
22305 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
22306 (i <= MSM_FRONTEND_DAI_LSM8);
22307 fdai = &fe_dai_map[i][session_type];
22308 if (fdai->strm_id != INVALID_SESSION) {
22309 int app_type, app_type_idx, copp_idx, acdb_dev_id;
22310
22311 if (session_type == SESSION_TYPE_TX &&
22312 fdai->be_srate &&
22313 (fdai->be_srate != bedai->sample_rate)) {
22314 pr_debug("%s: flush strm %d diff BE rates\n",
22315 __func__,
22316 fdai->strm_id);
22317
22318 if (fdai->event_info.event_func)
22319 fdai->event_info.event_func(
22320 MSM_PCM_RT_EVT_BUF_RECFG,
22321 fdai->event_info.priv_data);
22322 fdai->be_srate = 0; /* might not need it */
22323 }
22324 bits_per_sample = msm_routing_get_bit_width(
22325 bedai->format);
22326
22327 app_type =
22328 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
22329 if (app_type && is_lsm) {
22330 app_type_idx =
22331 msm_pcm_routing_get_lsm_app_type_idx(app_type);
22332 sample_rate =
22333 fe_dai_app_type_cfg[i][session_type][be_id]
22334 .sample_rate;
22335 bits_per_sample =
22336 lsm_app_type_cfg[app_type_idx].bit_width;
22337 } else if (app_type) {
22338 app_type_idx =
22339 msm_pcm_routing_get_app_type_idx(app_type);
22340 sample_rate =
22341 fe_dai_app_type_cfg[i][session_type]
22342 [be_id].sample_rate;
22343 bits_per_sample =
22344 app_type_cfg[app_type_idx].bit_width;
22345 } else
22346 sample_rate = bedai->sample_rate;
22347 /*
22348 * check if ADM needs to be configured with different
22349 * channel mapping than backend
22350 */
22351 if (!bedai->adm_override_ch)
22352 channels = bedai->channel;
22353 else
22354 channels = bedai->adm_override_ch;
22355 acdb_dev_id =
22356 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
22357 topology = msm_routing_get_adm_topology(i, session_type,
22358 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020022359
22360 if ((bedai->passthr_mode[i] ==
22361 COMPRESSED_PASSTHROUGH_DSD)
22362 || (bedai->passthr_mode[i] ==
22363 COMPRESSED_PASSTHROUGH_GEN)
22364 || (bedai->passthr_mode[i] ==
22365 COMPRESSED_PASSTHROUGH_IEC61937))
22366 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
22367
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022368 copp_idx = adm_open(bedai->port_id, path_type,
22369 sample_rate, channels, topology,
22370 fdai->perf_mode, bits_per_sample,
22371 app_type, acdb_dev_id);
22372 if ((copp_idx < 0) ||
22373 (copp_idx >= MAX_COPPS_PER_PORT)) {
22374 pr_err("%s: adm open failed\n", __func__);
22375 mutex_unlock(&routing_lock);
22376 return -EINVAL;
22377 }
22378 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
22379 __func__, i, session_type, be_id);
22380 set_bit(copp_idx,
22381 &session_copp_map[i][session_type][be_id]);
22382
22383 if (msm_is_resample_needed(
22384 sample_rate,
22385 bedai->sample_rate))
22386 adm_copp_mfc_cfg(
22387 bedai->port_id, copp_idx,
22388 bedai->sample_rate);
22389
22390 msm_pcm_routing_build_matrix(i, session_type, path_type,
22391 fdai->perf_mode,
22392 bedai->passthr_mode[i]);
22393 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22394 (bedai->passthr_mode[i] == LEGACY_PCM))
22395 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
22396 topology, channels);
22397 }
22398 }
22399
22400 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22401 session_id = msm_pcm_routing_get_voc_sessionid(i);
22402 if (session_id) {
22403 pr_debug("%s voice session_id: 0x%x\n", __func__,
22404 session_id);
22405
22406 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22407 voc_path_type = RX_PATH;
22408 else
22409 voc_path_type = TX_PATH;
22410
22411 voc_set_route_flag(session_id, voc_path_type, 1);
22412
22413 memset(&voc_be_media_format, 0,
22414 sizeof(struct media_format_info));
22415
22416 voc_be_media_format.port_id = bedai->port_id;
22417 voc_be_media_format.num_channels = bedai->channel;
22418 voc_be_media_format.sample_rate = bedai->sample_rate;
22419 voc_be_media_format.bits_per_sample = bedai->format;
22420 /* Defaulting this to 1 for voice call usecases */
22421 voc_be_media_format.channel_mapping[0] = 1;
22422
22423 voc_set_device_config(session_id, voc_path_type,
22424 &voc_be_media_format);
22425
22426 if (voc_get_route_flag(session_id, RX_PATH) &&
22427 voc_get_route_flag(session_id, TX_PATH))
22428 voc_enable_device(session_id);
22429 }
22430 }
22431
22432 /* Check if backend is an external ec ref port and set as needed */
22433 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
22434
22435 memset(&voc_be_media_format, 0,
22436 sizeof(struct media_format_info));
22437
22438 /* Get format info for ec ref port from msm_bedais[] */
22439 voc_be_media_format.port_id = bedai->port_id;
22440 voc_be_media_format.num_channels = bedai->channel;
22441 voc_be_media_format.bits_per_sample = bedai->format;
22442 voc_be_media_format.sample_rate = bedai->sample_rate;
22443 /* Defaulting this to 1 for voice call usecases */
22444 voc_be_media_format.channel_mapping[0] = 1;
22445 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
22446 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
22447 __func__, voc_be_media_format.port_id,
22448 voc_be_media_format.num_channels,
22449 voc_be_media_format.bits_per_sample,
22450 voc_be_media_format.sample_rate);
22451 }
22452
22453done:
22454 mutex_unlock(&routing_lock);
22455
22456 return 0;
22457}
22458
22459static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
22460 int fe_id)
22461{
22462 int index, topo_id, be_idx;
22463 unsigned long pp_config = 0;
22464 bool mute_on;
22465 int latency;
22466 bool compr_passthr_mode = true;
22467
22468 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
22469
22470 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
22471 pr_err("%s: Device pp params on invalid port %d\n",
22472 __func__, port_id);
22473 return -EINVAL;
22474 }
22475
22476 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22477 if (port_id == msm_bedais[be_idx].port_id)
22478 break;
22479 }
22480
22481 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22482 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22483 return -EINVAL;
22484 }
22485
22486 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22487 if (msm_bedais_pp_params[index].port_id == port_id)
22488 break;
22489 }
22490 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22491 pr_err("%s: Invalid backend pp params index %d\n",
22492 __func__, index);
22493 return -EINVAL;
22494 }
22495
22496 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
22497 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
22498 pr_err("%s: Invalid passthrough topology 0x%x\n",
22499 __func__, topo_id);
22500 return -EINVAL;
22501 }
22502
22503 if ((msm_bedais[be_idx].passthr_mode[fe_id] == LEGACY_PCM) ||
22504 (msm_bedais[be_idx].passthr_mode[fe_id] == LISTEN))
22505 compr_passthr_mode = false;
22506
22507 pp_config = msm_bedais_pp_params[index].pp_params_config;
22508 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
22509 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22510 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
22511 mute_on = msm_bedais_pp_params[index].mute_on;
22512 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22513 adm_send_compressed_device_mute(port_id,
22514 copp_idx,
22515 mute_on);
22516 }
22517 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
22518 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22519 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
22520 &pp_config);
22521 latency = msm_bedais_pp_params[index].latency;
22522 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22523 adm_send_compressed_device_latency(port_id,
22524 copp_idx,
22525 latency);
22526 }
22527 return 0;
22528}
22529
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022530static uint32_t msm_routing_get_topology(size_t data_size, void *data)
22531{
22532 uint32_t topology = NULL_COPP_TOPOLOGY;
22533 void *cal_info = NULL;
22534 uint32_t size = 0;
22535
22536 /* Retrieve cal_info size from cal data*/
22537 size = data_size - sizeof(struct audio_cal_type_basic);
22538 cal_info = kzalloc(size, GFP_KERNEL);
22539
22540 if (!cal_info)
22541 goto done;
22542
22543 memcpy(cal_info,
22544 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
22545
22546 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
22547 kfree(cal_info);
22548 cal_info = NULL;
22549
22550done:
22551 pr_debug("%s: Using topology %d\n", __func__, topology);
22552
22553 return topology;
22554}
22555
22556static void msm_routing_load_topology(size_t data_size, void *data)
22557{
22558 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022559 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022560
22561 topology_id = msm_routing_get_topology(data_size, data);
22562 if (topology_id != NULL_COPP_TOPOLOGY)
22563 ret = q6core_load_unload_topo_modules(topology_id,
22564 CORE_LOAD_TOPOLOGY);
22565 if (ret < 0)
22566 pr_debug("%s %d load topology failed\n",
22567 __func__, topology_id);
22568
22569}
22570
22571static void msm_routing_unload_topology(uint32_t topology_id)
22572{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022573 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022574
22575 if (topology_id != NULL_COPP_TOPOLOGY)
22576 ret = q6core_load_unload_topo_modules(topology_id,
22577 CORE_UNLOAD_TOPOLOGY);
22578 if (ret < 0)
22579 pr_debug("%s %d unload topology failed\n",
22580 __func__, topology_id);
22581
22582}
22583
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022584static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22585 struct snd_ctl_elem_value *ucontrol)
22586{
22587 int pp_id = ucontrol->value.integer.value[0];
22588 int port_id = 0;
22589 int index, be_idx, i, topo_id, idx;
22590 bool mute;
22591 int latency;
22592 bool compr_passthr_mode = true;
22593
22594 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
22595
22596 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22597 port_id = msm_bedais[be_idx].port_id;
22598 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
22599 break;
22600 }
22601
22602 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22603 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22604 return -EINVAL;
22605 }
22606
22607 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22608 if (msm_bedais_pp_params[index].port_id == port_id)
22609 break;
22610 }
22611 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22612 pr_err("%s: Invalid pp params backend index %d\n",
22613 __func__, index);
22614 return -EINVAL;
22615 }
22616
22617 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
22618 MSM_FRONTEND_DAI_MM_SIZE) {
22619 if ((msm_bedais[be_idx].passthr_mode[i] == LEGACY_PCM) ||
22620 (msm_bedais[be_idx].passthr_mode[i] == LISTEN))
22621 compr_passthr_mode = false;
22622
22623 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22624 unsigned long copp =
22625 session_copp_map[i]
22626 [SESSION_TYPE_RX][be_idx];
22627 if (!test_bit(idx, &copp))
22628 continue;
22629 topo_id = adm_get_topology_for_port_copp_idx(port_id,
22630 idx);
22631 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
22632 continue;
22633 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
22634 __func__, port_id, copp, msm_bedais[be_idx].active,
22635 msm_bedais[be_idx].passthr_mode[i]);
22636 switch (pp_id) {
22637 case ADM_PP_PARAM_MUTE_ID:
22638 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22639 mute = ucontrol->value.integer.value[1] ? true : false;
22640 msm_bedais_pp_params[index].mute_on = mute;
22641 set_bit(ADM_PP_PARAM_MUTE_BIT,
22642 &msm_bedais_pp_params[index].pp_params_config);
22643 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22644 adm_send_compressed_device_mute(port_id,
22645 idx, mute);
22646 break;
22647 case ADM_PP_PARAM_LATENCY_ID:
22648 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22649 msm_bedais_pp_params[index].latency =
22650 ucontrol->value.integer.value[1];
22651 set_bit(ADM_PP_PARAM_LATENCY_BIT,
22652 &msm_bedais_pp_params[index].pp_params_config);
22653 latency = msm_bedais_pp_params[index].latency =
22654 ucontrol->value.integer.value[1];
22655 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22656 adm_send_compressed_device_latency(port_id,
22657 idx, latency);
22658 break;
22659 default:
22660 pr_info("%s, device pp param %d not supported\n",
22661 __func__, pp_id);
22662 break;
22663 }
22664 }
22665 }
22666 return 0;
22667}
22668
22669static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22670 struct snd_ctl_elem_value *ucontrol)
22671{
22672 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
22673 return 0;
22674}
22675
22676static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
22677 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
22678 0, 3, msm_routing_get_device_pp_params_mixer,
22679 msm_routing_put_device_pp_params_mixer),
22680};
22681
22682static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
22683 struct snd_ctl_elem_value *ucontrol)
22684{
22685 ucontrol->value.integer.value[0] =
22686 core_get_license_status(ASM_MEDIA_FMT_APTX);
22687 pr_debug("%s: status %ld\n", __func__,
22688 ucontrol->value.integer.value[0]);
22689 return 0;
22690}
22691
22692static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
22693 struct snd_ctl_elem_value *ucontrol)
22694{
22695 int32_t status = 0;
22696
22697 status = core_set_license(ucontrol->value.integer.value[0],
22698 APTX_CLASSIC_DEC_LICENSE_ID);
22699 pr_debug("%s: status %d\n", __func__, status);
22700 return status;
22701}
22702
22703static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
22704 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
22705 0xFFFF, 0, msm_aptx_dec_license_control_get,
22706 msm_aptx_dec_license_control_put),
22707};
22708
22709static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
22710 struct snd_ctl_elem_info *uinfo)
22711{
22712 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22713 uinfo->count = sizeof(be_dai_name_table);
22714 return 0;
22715}
22716
22717static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
22718 unsigned int __user *bytes,
22719 unsigned int size)
22720{
22721 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022722 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022723
22724 if (size < sizeof(be_dai_name_table)) {
22725 pr_err("%s: invalid size %d requested, returning\n",
22726 __func__, size);
22727 ret = -EINVAL;
22728 goto done;
22729 }
22730
22731 /*
22732 * Fill be_dai_name_table from msm_bedais table to reduce code changes
22733 * needed when adding new backends
22734 */
22735 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
22736 be_dai_name_table[i].be_id = i;
22737 strlcpy(be_dai_name_table[i].be_name,
22738 msm_bedais[i].name,
22739 LPASS_BE_NAME_MAX_LENGTH);
22740 }
22741
22742 ret = copy_to_user(bytes, &be_dai_name_table,
22743 sizeof(be_dai_name_table));
22744 if (ret) {
22745 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
22746 ret = -EFAULT;
22747 }
22748
22749done:
22750 return ret;
22751}
22752
22753static const struct snd_kcontrol_new
22754 msm_routing_be_dai_name_table_mixer_controls[] = {
22755 {
22756 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
22757 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
22758 .info = msm_routing_be_dai_name_table_info,
22759 .name = "Backend DAI Name Table",
22760 .tlv.c = snd_soc_bytes_tlv_callback,
22761 .private_value = (unsigned long) &(struct soc_bytes_ext) {
22762 .max = sizeof(be_dai_name_table),
22763 .get = msm_routing_be_dai_name_table_tlv_get,
22764 }
22765 },
22766};
22767
22768static int msm_routing_stereo_channel_reverse_control_get(
22769 struct snd_kcontrol *kcontrol,
22770 struct snd_ctl_elem_value *ucontrol)
22771{
22772 ucontrol->value.integer.value[0] = swap_ch;
22773 pr_debug("%s: Swap channel value: %ld\n", __func__,
22774 ucontrol->value.integer.value[0]);
22775 return 0;
22776}
22777
22778static int msm_routing_stereo_channel_reverse_control_put(
22779 struct snd_kcontrol *kcontrol,
22780 struct snd_ctl_elem_value *ucontrol)
22781{
22782 int i, idx, be_index, port_id;
22783 int ret = 0;
22784 unsigned long copp;
22785
22786 pr_debug("%s Swap channel value:%ld\n", __func__,
22787 ucontrol->value.integer.value[0]);
22788
22789 swap_ch = ucontrol->value.integer.value[0];
22790
22791 mutex_lock(&routing_lock);
22792 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
22793 port_id = msm_bedais[be_index].port_id;
22794 if (!msm_bedais[be_index].active)
22795 continue;
22796
22797 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
22798 MSM_FRONTEND_DAI_MM_SIZE) {
22799 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
22800 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22801 if (!test_bit(idx, &copp))
22802 continue;
22803
22804 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
22805 __func__, port_id, idx);
22806 ret = adm_swap_speaker_channels(
22807 port_id, idx,
22808 msm_bedais[be_index].sample_rate,
22809 swap_ch);
22810 if (ret) {
22811 pr_err("%s:Swap_channel failed, err=%d\n",
22812 __func__, ret);
22813 goto done;
22814 }
22815 }
22816 }
22817 }
22818done:
22819 mutex_unlock(&routing_lock);
22820 return ret;
22821}
22822
22823static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
22824 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
22825 1, 0, msm_routing_stereo_channel_reverse_control_get,
22826 msm_routing_stereo_channel_reverse_control_put),
22827};
22828
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080022829static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
22830 struct snd_ctl_elem_info *uinfo)
22831{
22832 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
22833 uinfo->count = 1;
22834 return 0;
22835}
22836
22837static int msm_routing_instance_id_support_put(
22838 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
22839{
22840 bool supported = ucontrol->value.integer.value[0] ? true : false;
22841
22842 q6common_update_instance_id_support(supported);
22843 return 0;
22844}
22845
22846static int msm_routing_instance_id_support_get(
22847 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
22848{
22849 bool supported = false;
22850
22851 supported = q6common_is_instance_id_supported();
22852 ucontrol->value.integer.value[0] = supported ? 1 : 0;
22853
22854 return 0;
22855}
22856
22857static const struct snd_kcontrol_new
22858 msm_routing_feature_support_mixer_controls[] = {
22859 {
22860 .access = SNDRV_CTL_ELEM_ACCESS_READ |
22861 SNDRV_CTL_ELEM_ACCESS_WRITE,
22862 .info = msm_routing_instance_id_support_info,
22863 .name = "Instance ID Support",
22864 .put = msm_routing_instance_id_support_put,
22865 .get = msm_routing_instance_id_support_get,
22866 },
22867};
22868
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022869static const struct snd_pcm_ops msm_routing_pcm_ops = {
22870 .hw_params = msm_pcm_routing_hw_params,
22871 .close = msm_pcm_routing_close,
22872 .prepare = msm_pcm_routing_prepare,
22873};
22874
22875/* Not used but frame seems to require it */
22876static int msm_routing_probe(struct snd_soc_platform *platform)
22877{
22878 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
22879 ARRAY_SIZE(msm_qdsp6_widgets));
22880 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
22881 ARRAY_SIZE(intercon));
22882
22883 snd_soc_dapm_new_widgets(platform->component.dapm.card);
22884
22885 snd_soc_add_platform_controls(platform, lsm_controls,
22886 ARRAY_SIZE(lsm_controls));
22887
22888 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
22889 ARRAY_SIZE(aanc_slim_0_rx_mux));
22890
Sudheer Papothic07b37a2018-05-04 05:56:47 +053022891 snd_soc_add_platform_controls(platform, aanc_noise_level,
22892 ARRAY_SIZE(aanc_noise_level));
22893
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022894 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
22895 ARRAY_SIZE(msm_voc_session_controls));
22896
22897 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
22898 ARRAY_SIZE(app_type_cfg_controls));
22899
22900 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
22901 ARRAY_SIZE(lsm_app_type_cfg_controls));
22902
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022903 snd_soc_add_platform_controls(platform, module_cfg_controls,
22904 ARRAY_SIZE(module_cfg_controls));
22905
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022906 snd_soc_add_platform_controls(platform,
22907 stereo_to_custom_stereo_controls,
22908 ARRAY_SIZE(stereo_to_custom_stereo_controls));
22909
22910 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
22911 ARRAY_SIZE(ec_ref_param_controls));
22912
22913 snd_soc_add_platform_controls(platform, channel_mixer_controls,
22914 ARRAY_SIZE(channel_mixer_controls));
22915
22916 msm_qti_pp_add_controls(platform);
22917
22918 msm_dts_srs_tm_add_controls(platform);
22919
22920 msm_dolby_dap_add_controls(platform);
22921
22922 snd_soc_add_platform_controls(platform,
22923 use_ds1_or_ds2_controls,
22924 ARRAY_SIZE(use_ds1_or_ds2_controls));
22925
22926 snd_soc_add_platform_controls(platform,
22927 device_pp_params_mixer_controls,
22928 ARRAY_SIZE(device_pp_params_mixer_controls));
22929
22930 snd_soc_add_platform_controls(platform,
22931 msm_routing_be_dai_name_table_mixer_controls,
22932 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
22933
22934 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
22935 ARRAY_SIZE(msm_source_tracking_controls));
22936 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
22937 ARRAY_SIZE(adm_channel_config_controls));
22938
22939 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
22940 ARRAY_SIZE(aptx_dec_license_controls));
22941 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
22942 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080022943 snd_soc_add_platform_controls(
22944 platform, msm_routing_feature_support_mixer_controls,
22945 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
22946
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022947 return 0;
22948}
22949
22950int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
22951{
22952 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
22953}
22954
22955void msm_routing_pcm_free(struct snd_pcm *pcm)
22956{
22957 msm_pcm_routing_hwdep_free(pcm);
22958}
22959
22960static struct snd_soc_platform_driver msm_soc_routing_platform = {
22961 .ops = &msm_routing_pcm_ops,
22962 .probe = msm_routing_probe,
22963 .pcm_new = msm_routing_pcm_new,
22964 .pcm_free = msm_routing_pcm_free,
22965};
22966
22967static int msm_routing_pcm_probe(struct platform_device *pdev)
22968{
22969
22970 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
22971 return snd_soc_register_platform(&pdev->dev,
22972 &msm_soc_routing_platform);
22973}
22974
22975static int msm_routing_pcm_remove(struct platform_device *pdev)
22976{
22977 snd_soc_unregister_platform(&pdev->dev);
22978 return 0;
22979}
22980
22981static const struct of_device_id msm_pcm_routing_dt_match[] = {
22982 {.compatible = "qcom,msm-pcm-routing"},
22983 {}
22984};
22985MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
22986
22987static struct platform_driver msm_routing_pcm_driver = {
22988 .driver = {
22989 .name = "msm-pcm-routing",
22990 .owner = THIS_MODULE,
22991 .of_match_table = msm_pcm_routing_dt_match,
22992 },
22993 .probe = msm_routing_pcm_probe,
22994 .remove = msm_routing_pcm_remove,
22995};
22996
22997int msm_routing_check_backend_enabled(int fedai_id)
22998{
22999 int i;
23000
23001 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23002 /* bad ID assigned in machine driver */
23003 pr_err("%s: bad MM ID\n", __func__);
23004 return 0;
23005 }
23006 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23007 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23008 return msm_bedais[i].active;
23009 }
23010 return 0;
23011}
23012
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023013static int get_cal_type_index(int32_t cal_type)
23014{
23015 int ret = -EINVAL;
23016
23017 switch (cal_type) {
23018 case ADM_TOPOLOGY_CAL_TYPE:
23019 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23020 break;
23021 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23022 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23023 break;
23024 default:
23025 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23026 }
23027 return ret;
23028}
23029
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023030static int msm_routing_set_cal(int32_t cal_type,
23031 size_t data_size, void *data)
23032{
23033 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023034 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023035 pr_debug("%s\n", __func__);
23036
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023037 cal_index = get_cal_type_index(cal_type);
23038 if (cal_index < 0) {
23039 pr_err("%s: Could not get cal index %d\n",
23040 __func__, cal_index);
23041 ret = -EINVAL;
23042 goto done;
23043 }
23044
23045 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023046 if (ret < 0) {
23047 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23048 __func__, ret, cal_type);
23049 ret = -EINVAL;
23050 goto done;
23051 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023052 /* Pre-load if it is ADM topology */
23053 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23054 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23055 msm_routing_load_topology(data_size, data);
23056 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023057done:
23058 return ret;
23059}
23060
23061static void msm_routing_delete_cal_data(void)
23062{
23063 pr_debug("%s\n", __func__);
23064
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023065 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023066}
23067
23068static int msm_routing_init_cal_data(void)
23069{
23070 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023071 struct cal_type_info cal_type_info[] = {
23072 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023073 {NULL, NULL, NULL,
23074 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023075 {NULL, NULL, cal_utils_match_buf_num} },
23076
23077 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23078 {NULL, NULL, NULL,
23079 msm_routing_set_cal, NULL, NULL} },
23080 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023081 };
23082 pr_debug("%s\n", __func__);
23083
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023084 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23085 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023086 if (ret < 0) {
23087 pr_err("%s: could not create cal type!\n",
23088 __func__);
23089 ret = -EINVAL;
23090 goto err;
23091 }
23092
23093 return ret;
23094err:
23095 msm_routing_delete_cal_data();
23096 return ret;
23097}
23098
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023099int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023100{
23101 mutex_init(&routing_lock);
23102 if (msm_routing_init_cal_data())
23103 pr_err("%s: could not init cal data!\n", __func__);
23104
23105 afe_set_routing_callback(
23106 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23107
23108 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23109 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23110
23111 return platform_driver_register(&msm_routing_pcm_driver);
23112}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023113
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023114void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023115{
23116 msm_routing_delete_cal_data();
23117 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23118 mutex_destroy(&routing_lock);
23119 platform_driver_unregister(&msm_routing_pcm_driver);
23120}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023121
23122MODULE_DESCRIPTION("MSM routing platform driver");
23123MODULE_LICENSE("GPL v2");