blob: df5ce1dbd551c8fe3454f953adac3b6de6fe61e4 [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},
371 { AFE_PORT_ID_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
372 LPASS_BE_SPDIF_RX},
373 { 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},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530605};
606
607/* Track ASM playback & capture sessions of DAI
608 * Track LSM listen sessions
609 */
610static struct msm_pcm_routing_fdai_data
611 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
612 /* MULTIMEDIA1 */
613 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
614 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
615 /* MULTIMEDIA2 */
616 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
617 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
618 /* MULTIMEDIA3 */
619 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
620 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
621 /* MULTIMEDIA4 */
622 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
623 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
624 /* MULTIMEDIA5 */
625 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
626 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
627 /* MULTIMEDIA6 */
628 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
629 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
630 /* MULTIMEDIA7*/
631 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
632 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
633 /* MULTIMEDIA8 */
634 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
635 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
636 /* MULTIMEDIA9 */
637 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
638 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
639 /* MULTIMEDIA10 */
640 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
641 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
642 /* MULTIMEDIA11 */
643 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
644 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
645 /* MULTIMEDIA12 */
646 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
647 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
648 /* MULTIMEDIA13 */
649 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
650 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
651 /* MULTIMEDIA14 */
652 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
653 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
654 /* MULTIMEDIA15 */
655 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
656 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
657 /* MULTIMEDIA16 */
658 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
659 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
660 /* MULTIMEDIA17 */
661 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
662 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
663 /* MULTIMEDIA18 */
664 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
665 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
666 /* MULTIMEDIA19 */
667 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
668 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
669 /* MULTIMEDIA20 */
670 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
671 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530672 /* MULTIMEDIA28 */
673 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
674 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
675 /* MULTIMEDIA29 */
676 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
677 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530678 /* VOIP */
679 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
680 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
681 /* AFE_RX */
682 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
683 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
684 /* AFE_TX */
685 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
686 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
687 /* VOICE_STUB */
688 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
689 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530690 /* DTMF_RX */
691 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
692 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530693 /* QCHAT */
694 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
695 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
696 /* VOLTE_STUB */
697 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
698 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
699 /* LSM1 */
700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
702 /* LSM2 */
703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
705 /* LSM3 */
706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
708 /* LSM4 */
709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
711 /* LSM5 */
712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
714 /* LSM6 */
715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
717 /* LSM7 */
718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
720 /* LSM8 */
721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
723 /* VOICE2_STUB */
724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530726 /* VOICEMMODE1 */
727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
729 /* VOICEMMODE2 */
730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
732};
733
734static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
735 [MSM_BACKEND_DAI_MAX];
736static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
737static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
738static struct msm_pcm_stream_app_type_cfg
739 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
740
741static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
742
743/* The caller of this should aqcuire routing lock */
744void msm_pcm_routing_get_bedai_info(int be_idx,
745 struct msm_pcm_routing_bdai_data *be_dai)
746{
747 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
748 memcpy(be_dai, &msm_bedais[be_idx],
749 sizeof(struct msm_pcm_routing_bdai_data));
750}
751
752/* The caller of this should aqcuire routing lock */
753void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
754 struct msm_pcm_routing_fdai_data *fe_dai)
755{
756 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
757 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
758 sizeof(struct msm_pcm_routing_fdai_data));
759}
760
761void msm_pcm_routing_acquire_lock(void)
762{
763 mutex_lock(&routing_lock);
764}
765
766void msm_pcm_routing_release_lock(void)
767{
768 mutex_unlock(&routing_lock);
769}
770
771static int msm_pcm_routing_get_app_type_idx(int app_type)
772{
773 int idx;
774
775 pr_debug("%s: app_type: %d\n", __func__, app_type);
776 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
777 if (app_type_cfg[idx].app_type == app_type)
778 return idx;
779 }
780 pr_info("%s: App type not available, fallback to default\n", __func__);
781 return 0;
782}
783
784static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
785{
786 int idx;
787
788 pr_debug("%s: app_type: %d\n", __func__, app_type);
789 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
790 if (lsm_app_type_cfg[idx].app_type == app_type)
791 return idx;
792 }
793 pr_debug("%s: App type not available, fallback to default\n", __func__);
794 return 0;
795}
796
797static bool is_mm_lsm_fe_id(int fe_id)
798{
799 bool rc = true;
800
801 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
802 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
803 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
804 rc = false;
805 }
806 return rc;
807}
808
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700809/*
810 * msm_pcm_routing_send_chmix_cfg:
811 * send the channel mixer command to mix the input channels
812 * into output channels.
813 *
814 * @fe_id: front end id
815 * @ip_channel_cnt: input channel count
816 * @op_channel_cnt: output channel count
817 * @ch_wght_coeff: channel weight co-efficients for channel mixing
818 * @session_type: indicates session is of type TX or RX
819 * @stream_type: indicates either Audio or Listen stream type
820 */
821int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
822 int op_channel_cnt, int *ch_wght_coeff,
823 int session_type, int stream_type)
824{
825
826 int rc = 0, idx = 0;
827 int be_index = 0, port_id;
828 unsigned int session_id = 0;
829
830 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
831 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
832 stream_type);
833 if (!is_mm_lsm_fe_id(fe_id)) {
834 /* bad ID assigned in machine driver */
835 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
836 return -EINVAL;
837 }
838
839 if (ch_wght_coeff == NULL) {
840 pr_err("%s: Null channel weightage coefficients passed\n",
841 __func__);
842 return -EINVAL;
843 }
844
845 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
846 port_id = msm_bedais[be_index].port_id;
847 if (!msm_bedais[be_index].active ||
848 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
849 continue;
850
851 session_id = fe_dai_map[fe_id][session_type].strm_id;
852
853 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
854 unsigned long copp =
855 session_copp_map[fe_id][session_type][be_index];
856 if (!test_bit(idx, &copp))
857 continue;
858 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
859 session_id, ip_channel_cnt,
860 op_channel_cnt, ch_wght_coeff,
861 session_type, stream_type);
862 if (rc < 0)
863 pr_err("%s: err setting channel mix config\n",
864 __func__);
865 }
866 }
867
868 return 0;
869}
870EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
871
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530872int msm_pcm_routing_reg_stream_app_type_cfg(
873 int fedai_id, int session_type, int be_id,
874 struct msm_pcm_stream_app_type_cfg *cfg_data)
875{
876 int ret = 0;
877
878 if (cfg_data == NULL) {
879 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
880 ret = -EINVAL;
881 goto done;
882 }
883
884 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
885 __func__, fedai_id, session_type, be_id,
886 cfg_data->app_type, cfg_data->acdb_dev_id,
887 cfg_data->sample_rate);
888
889 if (!is_mm_lsm_fe_id(fedai_id)) {
890 pr_err("%s: Invalid machine driver ID %d\n",
891 __func__, fedai_id);
892 ret = -EINVAL;
893 goto done;
894 }
895 if (session_type != SESSION_TYPE_RX &&
896 session_type != SESSION_TYPE_TX) {
897 pr_err("%s: Invalid session type %d\n",
898 __func__, session_type);
899 ret = -EINVAL;
900 goto done;
901 }
902 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
903 pr_err("%s: Received out of bounds be_id %d\n",
904 __func__, be_id);
905 ret = -EINVAL;
906 goto done;
907 }
908
909 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
910
911 /*
912 * Store the BE ID of the configuration information set as the latest so
913 * the get mixer control knows what to return.
914 */
915 last_be_id_configured[fedai_id][session_type] = be_id;
916
917done:
918 return ret;
919}
920EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
921
922/**
923 * msm_pcm_routing_get_stream_app_type_cfg
924 *
925 * Receives fedai_id, session_type, be_id, and populates app_type,
926 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
927 * -EINVAL and does not alter passed values.
928 *
929 * fedai_id - Passed value, front end ID for which app type config is wanted
930 * session_type - Passed value, session type for which app type config
931 * is wanted
932 * be_id - Returned value, back end device id the app type config data is for
933 * cfg_data - Returned value, configuration data used by app type config
934 */
935int msm_pcm_routing_get_stream_app_type_cfg(
936 int fedai_id, int session_type, int *bedai_id,
937 struct msm_pcm_stream_app_type_cfg *cfg_data)
938{
939 int be_id;
940 int ret = 0;
941
942 if (bedai_id == NULL) {
943 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
944 ret = -EINVAL;
945 goto done;
946 } else if (cfg_data == NULL) {
947 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
948 ret = -EINVAL;
949 goto done;
950 } else if (!is_mm_lsm_fe_id(fedai_id)) {
951 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
952 ret = -EINVAL;
953 goto done;
954 } else if (session_type != SESSION_TYPE_RX &&
955 session_type != SESSION_TYPE_TX) {
956 pr_err("%s: Invalid session type %d\n", __func__, session_type);
957 ret = -EINVAL;
958 goto done;
959 }
960
961 be_id = last_be_id_configured[fedai_id][session_type];
962 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
963 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
964 ret = -EINVAL;
965 goto done;
966 }
967
968 *bedai_id = be_id;
969 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
970 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
971 __func__, fedai_id, session_type, *bedai_id,
972 cfg_data->app_type, cfg_data->acdb_dev_id,
973 cfg_data->sample_rate);
974done:
975 return ret;
976}
977EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
978
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530979static struct cal_block_data *msm_routing_find_topology_by_path(int path,
980 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530981{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530982 struct list_head *ptr, *next;
983 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530984 pr_debug("%s\n", __func__);
985
986 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530987 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530988
989 cal_block = list_entry(ptr,
990 struct cal_block_data, list);
991
Vikram Panduranga770b8382017-09-27 12:17:36 -0700992 if (cal_utils_is_cal_stale(cal_block))
993 continue;
994
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530995 if (((struct audio_cal_info_adm_top *)cal_block
996 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530997 return cal_block;
998 }
999 }
1000 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1001 return NULL;
1002}
1003
1004static struct cal_block_data *msm_routing_find_topology(int path,
1005 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301006 int acdb_id,
1007 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301008{
1009 struct list_head *ptr, *next;
1010 struct cal_block_data *cal_block = NULL;
1011 struct audio_cal_info_adm_top *cal_info;
1012
1013 pr_debug("%s\n", __func__);
1014
1015 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301016 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301017
1018 cal_block = list_entry(ptr,
1019 struct cal_block_data, list);
1020
Vikram Panduranga770b8382017-09-27 12:17:36 -07001021 if (cal_utils_is_cal_stale(cal_block))
1022 continue;
1023
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301024 cal_info = (struct audio_cal_info_adm_top *)
1025 cal_block->cal_info;
1026 if ((cal_info->path == path) &&
1027 (cal_info->app_type == app_type) &&
1028 (cal_info->acdb_id == acdb_id)) {
1029 return cal_block;
1030 }
1031 }
1032 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1033 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001034 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301035}
1036
Vikram Panduranga770b8382017-09-27 12:17:36 -07001037/*
1038 * Retrieving cal_block will mark cal_block as stale.
1039 * Hence it cannot be reused or resent unless the flag
1040 * is reset.
1041 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301042static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1043 int be_id)
1044{
1045 int topology = NULL_COPP_TOPOLOGY;
1046 struct cal_block_data *cal_block = NULL;
1047 int app_type = 0, acdb_dev_id = 0;
1048
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301049 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1050 __func__, fedai_id, session_type, be_id);
1051
1052 if (cal_data == NULL)
1053 goto done;
1054
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301055 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1056 acdb_dev_id =
1057 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1058
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301059 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301060 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301061 acdb_dev_id,
1062 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001063 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301064 topology = ((struct audio_cal_info_adm_top *)
1065 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001066 cal_utils_mark_cal_used(cal_block);
1067 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1068 } else {
1069 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301070
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301071 pr_debug("%s: Check for LSM topology\n", __func__);
1072 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1073 cal_block = msm_routing_find_topology(session_type, app_type,
1074 acdb_dev_id,
1075 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001076 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301077 topology = ((struct audio_cal_info_adm_top *)
1078 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001079 cal_utils_mark_cal_used(cal_block);
1080 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301081 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1082 }
1083
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301084done:
1085 pr_debug("%s: Using topology %d\n", __func__, topology);
1086 return topology;
1087}
1088
1089static uint8_t is_be_dai_extproc(int be_dai)
1090{
1091 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1092 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1093 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1094 return 1;
1095 else
1096 return 0;
1097}
1098
1099static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1100 int path_type, int perf_mode,
1101 uint32_t passthr_mode)
1102{
1103 int i, port_type, j, num_copps = 0;
1104 struct route_payload payload;
1105
1106 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1107 path_type == ADM_PATH_COMPRESSED_RX) ?
1108 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1109
1110 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1111 if (!is_be_dai_extproc(i) &&
1112 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1113 (msm_bedais[i].active) &&
1114 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1115 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1116 unsigned long copp =
1117 session_copp_map[fedai_id][sess_type][i];
1118 if (test_bit(j, &copp)) {
1119 payload.port_id[num_copps] =
1120 msm_bedais[i].port_id;
1121 payload.copp_idx[num_copps] = j;
1122 payload.app_type[num_copps] =
1123 fe_dai_app_type_cfg
1124 [fedai_id][sess_type][i]
1125 .app_type;
1126 payload.acdb_dev_id[num_copps] =
1127 fe_dai_app_type_cfg
1128 [fedai_id][sess_type][i]
1129 .acdb_dev_id;
1130 payload.sample_rate[num_copps] =
1131 fe_dai_app_type_cfg
1132 [fedai_id][sess_type][i]
1133 .sample_rate;
1134 num_copps++;
1135 }
1136 }
1137 }
1138 }
1139
1140 if (num_copps) {
1141 payload.num_copps = num_copps;
1142 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1143 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1144 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1145 }
1146}
1147
1148void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1149 int stream_type)
1150{
1151 int i, session_type, path_type, port_type;
1152 u32 mode = 0;
1153
1154 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1155 /* bad ID assigned in machine driver */
1156 pr_err("%s: bad MM ID\n", __func__);
1157 return;
1158 }
1159
1160 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1161 session_type = SESSION_TYPE_RX;
1162 path_type = ADM_PATH_PLAYBACK;
1163 port_type = MSM_AFE_PORT_TYPE_RX;
1164 } else {
1165 session_type = SESSION_TYPE_TX;
1166 path_type = ADM_PATH_LIVE_REC;
1167 port_type = MSM_AFE_PORT_TYPE_TX;
1168 }
1169
1170 mutex_lock(&routing_lock);
1171
1172 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1173 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1174 if (!is_be_dai_extproc(i) &&
1175 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1176 (msm_bedais[i].active) &&
1177 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1178 mode = afe_get_port_type(msm_bedais[i].port_id);
1179 adm_connect_afe_port(mode, dspst_id,
1180 msm_bedais[i].port_id);
1181 break;
1182 }
1183 }
1184 mutex_unlock(&routing_lock);
1185}
1186
1187static bool route_check_fe_id_adm_support(int fe_id)
1188{
1189 bool rc = true;
1190
1191 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1192 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1193 /* fe id is listen while port is set to afe */
1194 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1195 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1196 __func__, fe_id, lsm_port_index);
1197 rc = false;
1198 }
1199 }
1200
1201 return rc;
1202}
1203
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001204/*
1205 * msm_pcm_routing_get_pp_ch_cnt:
1206 * Read the processed channel count
1207 *
1208 * @fe_id: Front end ID
1209 * @session_type: Inidicates RX or TX session type
1210 */
1211int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1212{
1213 struct msm_pcm_stream_app_type_cfg cfg_data;
1214 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301215 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001216
1217 memset(&cfg_data, 0, sizeof(cfg_data));
1218
1219 if (!is_mm_lsm_fe_id(fe_id)) {
1220 pr_err("%s: bad MM ID\n", __func__);
1221 return -EINVAL;
1222 }
1223
1224 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1225 &be_id, &cfg_data);
1226 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301227 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001228 return ret;
1229 }
1230
1231 app_type = cfg_data.app_type;
1232 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1233 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1234}
1235EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1236
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301237int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1238 int dspst_id, int stream_type,
1239 uint32_t passthr_mode)
1240{
1241 int i, j, session_type, path_type, port_type, topology;
1242 int num_copps = 0;
1243 struct route_payload payload;
1244 u32 channels, sample_rate;
1245 u16 bit_width = 16;
1246 bool is_lsm;
1247
1248 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1249 __func__, fe_id, perf_mode, dspst_id,
1250 stream_type, passthr_mode);
1251 if (!is_mm_lsm_fe_id(fe_id)) {
1252 /* bad ID assigned in machine driver */
1253 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1254 return -EINVAL;
1255 }
1256
1257 if (!route_check_fe_id_adm_support(fe_id)) {
1258 /* ignore adm open if not supported for fe_id */
1259 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1260 return 0;
1261 }
1262
1263 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1264 session_type = SESSION_TYPE_RX;
1265 if (passthr_mode != LEGACY_PCM)
1266 path_type = ADM_PATH_COMPRESSED_RX;
1267 else
1268 path_type = ADM_PATH_PLAYBACK;
1269 port_type = MSM_AFE_PORT_TYPE_RX;
1270 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1271 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301272 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301273 path_type = ADM_PATH_COMPRESSED_TX;
1274 else
1275 path_type = ADM_PATH_LIVE_REC;
1276 port_type = MSM_AFE_PORT_TYPE_TX;
1277 } else {
1278 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1279 return -EINVAL;
1280 }
1281
1282 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1283 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1284 mutex_lock(&routing_lock);
1285
1286 payload.num_copps = 0; /* only RX needs to use payload */
1287 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
1288 /* re-enable EQ if active */
1289 msm_qti_pp_send_eq_values(fe_id);
1290 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1291 if (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))
1292 msm_bedais[i].passthr_mode[fe_id] = passthr_mode;
1293
1294 if (!is_be_dai_extproc(i) &&
1295 (afe_get_port_type(msm_bedais[i].port_id) ==
1296 port_type) &&
1297 (msm_bedais[i].active) &&
1298 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1299 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1300
1301 /*
1302 * check if ADM needs to be configured with different
1303 * channel mapping than backend
1304 */
1305 if (!msm_bedais[i].adm_override_ch)
1306 channels = msm_bedais[i].channel;
1307 else
1308 channels = msm_bedais[i].adm_override_ch;
1309
1310 bit_width = msm_routing_get_bit_width(
1311 msm_bedais[i].format);
1312 app_type =
1313 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1314 if (app_type && is_lsm) {
1315 app_type_idx =
1316 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1317 sample_rate =
1318 fe_dai_app_type_cfg[fe_id][session_type][i]
1319 .sample_rate;
1320 bit_width =
1321 lsm_app_type_cfg[app_type_idx].bit_width;
1322 } else if (app_type) {
1323 app_type_idx =
1324 msm_pcm_routing_get_app_type_idx(
1325 app_type);
1326 sample_rate =
1327 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1328 bit_width =
1329 app_type_cfg[app_type_idx].bit_width;
1330 } else {
1331 sample_rate = msm_bedais[i].sample_rate;
1332 }
1333 acdb_dev_id =
1334 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1335 topology = msm_routing_get_adm_topology(fe_id,
1336 session_type,
1337 i);
1338 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1339 || (passthr_mode ==
1340 COMPRESSED_PASSTHROUGH_GEN))
1341 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1342 pr_debug("%s: Before adm open topology %d\n", __func__,
1343 topology);
1344
1345 copp_idx =
1346 adm_open(msm_bedais[i].port_id,
1347 path_type, sample_rate, channels,
1348 topology, perf_mode, bit_width,
1349 app_type, acdb_dev_id);
1350 if ((copp_idx < 0) ||
1351 (copp_idx >= MAX_COPPS_PER_PORT)) {
1352 pr_err("%s:adm open failed coppid:%d\n",
1353 __func__, copp_idx);
1354 mutex_unlock(&routing_lock);
1355 return -EINVAL;
1356 }
1357 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1358 __func__, fe_id, session_type, i);
1359 set_bit(copp_idx,
1360 &session_copp_map[fe_id][session_type][i]);
1361
1362 if (msm_is_resample_needed(
1363 sample_rate,
1364 msm_bedais[i].sample_rate))
1365 adm_copp_mfc_cfg(
1366 msm_bedais[i].port_id, copp_idx,
1367 msm_bedais[i].sample_rate);
1368
1369 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1370 unsigned long copp =
1371 session_copp_map[fe_id][session_type][i];
1372 if (test_bit(j, &copp)) {
1373 payload.port_id[num_copps] =
1374 msm_bedais[i].port_id;
1375 payload.copp_idx[num_copps] = j;
1376 payload.app_type[num_copps] =
1377 fe_dai_app_type_cfg
1378 [fe_id][session_type][i]
1379 .app_type;
1380 payload.acdb_dev_id[num_copps] =
1381 fe_dai_app_type_cfg
1382 [fe_id][session_type][i]
1383 .acdb_dev_id;
1384 payload.sample_rate[num_copps] =
1385 fe_dai_app_type_cfg
1386 [fe_id][session_type][i]
1387 .sample_rate;
1388 num_copps++;
1389 }
1390 }
1391 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
1392 && passthr_mode !=
1393 COMPRESSED_PASSTHROUGH_GEN) {
1394 msm_routing_send_device_pp_params(
1395 msm_bedais[i].port_id,
1396 copp_idx, fe_id);
1397 }
1398 }
1399 }
1400 if (num_copps) {
1401 payload.num_copps = num_copps;
1402 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1403 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1404 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1405 }
1406 mutex_unlock(&routing_lock);
1407 return 0;
1408}
1409
1410static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1411{
1412 u32 session_id;
1413
1414 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301415 case MSM_FRONTEND_DAI_QCHAT:
1416 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1417 break;
1418 case MSM_FRONTEND_DAI_VOIP:
1419 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1420 break;
1421 case MSM_FRONTEND_DAI_VOICEMMODE1:
1422 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1423 break;
1424 case MSM_FRONTEND_DAI_VOICEMMODE2:
1425 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1426 break;
1427 default:
1428 session_id = 0;
1429 }
1430
1431 pr_debug("%s session_id 0x%x", __func__, session_id);
1432 return session_id;
1433}
1434
1435static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1436 int dspst_id, int stream_type)
1437{
1438 int copp_idx = 0;
1439 int sess_type = 0;
1440 int i = 0, j = 0, be_id;
1441 int ret = 0;
1442
1443 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1444 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1445 return 0;
1446 }
1447
1448 if (!(channel_mixer[fe_id].enable)) {
1449 pr_debug("%s: channel mixer not enabled for FE %d\n",
1450 __func__, fe_id);
1451 return 0;
1452 }
1453
1454 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1455 sess_type = SESSION_TYPE_RX;
1456 else
1457 sess_type = SESSION_TYPE_TX;
1458
1459 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1460 ++i) {
1461 be_id = channel_input[fe_id][i] - 1;
1462 channel_mixer[fe_id].input_channels[i] =
1463 msm_bedais[be_id].channel;
1464
1465 if ((msm_bedais[be_id].active) &&
1466 test_bit(fe_id,
1467 &msm_bedais[be_id].fe_sessions[0])) {
1468 unsigned long copp =
1469 session_copp_map[fe_id][sess_type][be_id];
1470 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1471 if (test_bit(j, &copp)) {
1472 copp_idx = j;
1473 break;
1474 }
1475 }
1476
1477 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1478 __func__,
1479 fe_id, be_id, msm_bedais[be_id].channel,
1480 copp_idx);
1481 ret = adm_programable_channel_mixer(
1482 msm_bedais[be_id].port_id,
1483 copp_idx, dspst_id, sess_type,
1484 channel_mixer + fe_id, i);
1485 }
1486 }
1487
1488 return ret;
1489}
1490
1491int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1492 int dspst_id, int stream_type)
1493{
1494 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1495 struct route_payload payload;
1496 u32 channels, sample_rate;
1497 uint16_t bits_per_sample = 16;
1498 uint32_t passthr_mode = LEGACY_PCM;
1499 int ret = 0;
1500
1501 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1502 /* bad ID assigned in machine driver */
1503 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1504 return -EINVAL;
1505 }
1506
1507 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1508 session_type = SESSION_TYPE_RX;
1509 path_type = ADM_PATH_PLAYBACK;
1510 port_type = MSM_AFE_PORT_TYPE_RX;
1511 } else {
1512 session_type = SESSION_TYPE_TX;
1513 path_type = ADM_PATH_LIVE_REC;
1514 port_type = MSM_AFE_PORT_TYPE_TX;
1515 }
1516
1517 mutex_lock(&routing_lock);
1518
1519 payload.num_copps = 0; /* only RX needs to use payload */
1520 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1521 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
1522
1523 /* re-enable EQ if active */
1524 msm_qti_pp_send_eq_values(fedai_id);
1525 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1526 if (!is_be_dai_extproc(i) &&
1527 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1528 (msm_bedais[i].active) &&
1529 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1530 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1531 /*
1532 * check if ADM needs to be configured with different
1533 * channel mapping than backend
1534 */
1535 if (!msm_bedais[i].adm_override_ch)
1536 channels = msm_bedais[i].channel;
1537 else
1538 channels = msm_bedais[i].adm_override_ch;
1539 msm_bedais[i].passthr_mode[fedai_id] =
1540 LEGACY_PCM;
1541
1542 bits_per_sample = msm_routing_get_bit_width(
1543 msm_bedais[i].format);
1544
1545 app_type =
1546 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1547 if (app_type) {
1548 app_type_idx =
1549 msm_pcm_routing_get_app_type_idx(app_type);
1550 sample_rate =
1551 fe_dai_app_type_cfg[fedai_id][session_type][i]
1552 .sample_rate;
1553 bits_per_sample =
1554 app_type_cfg[app_type_idx].bit_width;
1555 } else
1556 sample_rate = msm_bedais[i].sample_rate;
1557
1558 acdb_dev_id =
1559 fe_dai_app_type_cfg[fedai_id][session_type][i]
1560 .acdb_dev_id;
1561 topology = msm_routing_get_adm_topology(fedai_id,
1562 session_type,
1563 i);
1564 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1565 sample_rate, channels, topology,
1566 perf_mode, bits_per_sample,
1567 app_type, acdb_dev_id);
1568 if ((copp_idx < 0) ||
1569 (copp_idx >= MAX_COPPS_PER_PORT)) {
1570 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001571 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301572 mutex_unlock(&routing_lock);
1573 return -EINVAL;
1574 }
1575 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1576 __func__, fedai_id, session_type, i);
1577 set_bit(copp_idx,
1578 &session_copp_map[fedai_id][session_type][i]);
1579
1580 if (msm_is_resample_needed(
1581 sample_rate,
1582 msm_bedais[i].sample_rate))
1583 adm_copp_mfc_cfg(
1584 msm_bedais[i].port_id, copp_idx,
1585 msm_bedais[i].sample_rate);
1586
1587 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1588 unsigned long copp =
1589 session_copp_map[fedai_id][session_type][i];
1590 if (test_bit(j, &copp)) {
1591 payload.port_id[num_copps] =
1592 msm_bedais[i].port_id;
1593 payload.copp_idx[num_copps] = j;
1594 payload.app_type[num_copps] =
1595 fe_dai_app_type_cfg
1596 [fedai_id][session_type]
1597 [i].app_type;
1598 payload.acdb_dev_id[num_copps] =
1599 fe_dai_app_type_cfg
1600 [fedai_id][session_type]
1601 [i].acdb_dev_id;
1602 payload.sample_rate[num_copps] =
1603 fe_dai_app_type_cfg
1604 [fedai_id][session_type]
1605 [i].sample_rate;
1606 num_copps++;
1607 }
1608 }
1609 if ((perf_mode == LEGACY_PCM_MODE) &&
1610 (msm_bedais[i].passthr_mode[fedai_id] ==
1611 LEGACY_PCM))
1612 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
1613 copp_idx, topology,
1614 channels);
1615 }
1616 }
1617 if (num_copps) {
1618 payload.num_copps = num_copps;
1619 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1620 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1621 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1622 }
1623
1624 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1625 dspst_id, stream_type);
1626 mutex_unlock(&routing_lock);
1627 return ret;
1628}
1629
1630int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1631 int dspst_id, int stream_type,
1632 struct msm_pcm_routing_evt event_info)
1633{
1634 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1635 stream_type)) {
1636 pr_err("%s: failed to reg phy stream\n", __func__);
1637 return -EINVAL;
1638 }
1639
1640 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1641 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1642 else
1643 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1644 return 0;
1645}
1646
1647void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1648{
1649 int i, port_type, session_type, path_type, topology;
1650 struct msm_pcm_routing_fdai_data *fdai;
1651
1652 if (!is_mm_lsm_fe_id(fedai_id)) {
1653 /* bad ID assigned in machine driver */
1654 pr_err("%s: bad MM ID\n", __func__);
1655 return;
1656 }
1657
1658 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1659 port_type = MSM_AFE_PORT_TYPE_RX;
1660 session_type = SESSION_TYPE_RX;
1661 path_type = ADM_PATH_PLAYBACK;
1662 } else {
1663 port_type = MSM_AFE_PORT_TYPE_TX;
1664 session_type = SESSION_TYPE_TX;
1665 path_type = ADM_PATH_LIVE_REC;
1666 }
1667
1668 mutex_lock(&routing_lock);
1669 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1670 if (!is_be_dai_extproc(i) &&
1671 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1672 (msm_bedais[i].active) &&
1673 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1674 int idx;
1675 unsigned long copp =
1676 session_copp_map[fedai_id][session_type][i];
1677 fdai = &fe_dai_map[fedai_id][session_type];
1678
1679 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1680 if (test_bit(idx, &copp))
1681 break;
1682
1683 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1684 pr_debug("%s: copp idx is invalid, exiting\n",
1685 __func__);
1686 continue;
1687 }
1688 topology = adm_get_topology_for_port_copp_idx(
1689 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001690 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301691 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1692 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1693 __func__, copp, fedai_id, session_type, i);
1694 clear_bit(idx,
1695 &session_copp_map[fedai_id][session_type][i]);
1696 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1697 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1698 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1699 (msm_bedais[i].passthr_mode[fedai_id] ==
1700 LEGACY_PCM))
1701 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1702 topology);
1703 }
1704 }
1705
1706 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1707 fe_dai_map[fedai_id][session_type].be_srate = 0;
1708 mutex_unlock(&routing_lock);
1709}
1710
1711/* Check if FE/BE route is set */
1712static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1713{
1714 bool rc = false;
1715
1716 if (!is_mm_lsm_fe_id(fe_id)) {
1717 /* recheck FE ID in the mixer control defined in this file */
1718 pr_err("%s: bad MM ID\n", __func__);
1719 return rc;
1720 }
1721
1722 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1723 rc = true;
1724
1725 return rc;
1726}
1727
1728static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1729{
1730 int session_type, path_type, topology;
1731 u32 channels, sample_rate;
1732 uint16_t bits_per_sample = 16;
1733 struct msm_pcm_routing_fdai_data *fdai;
1734 uint32_t passthr_mode;
1735 bool is_lsm;
1736
1737 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1738
1739 if (!is_mm_lsm_fe_id(val)) {
1740 /* recheck FE ID in the mixer control defined in this file */
1741 pr_err("%s: bad MM ID\n", __func__);
1742 return;
1743 }
1744
1745 if (!route_check_fe_id_adm_support(val)) {
1746 /* ignore adm open if not supported for fe_id */
1747 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1748 return;
1749 }
1750
1751 passthr_mode = msm_bedais[reg].passthr_mode[val];
1752 if (afe_get_port_type(msm_bedais[reg].port_id) ==
1753 MSM_AFE_PORT_TYPE_RX) {
1754 session_type = SESSION_TYPE_RX;
1755 if (passthr_mode != LEGACY_PCM)
1756 path_type = ADM_PATH_COMPRESSED_RX;
1757 else
1758 path_type = ADM_PATH_PLAYBACK;
1759 } else {
1760 session_type = SESSION_TYPE_TX;
1761 if (passthr_mode != LEGACY_PCM)
1762 path_type = ADM_PATH_COMPRESSED_TX;
1763 else
1764 path_type = ADM_PATH_LIVE_REC;
1765 }
1766 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1767 (val <= MSM_FRONTEND_DAI_LSM8);
1768
1769 mutex_lock(&routing_lock);
1770 if (set) {
1771 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1772 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1773 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1774 voc_start_playback(set, msm_bedais[reg].port_id);
1775
1776 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1777 fdai = &fe_dai_map[val][session_type];
1778 if (msm_bedais[reg].active && fdai->strm_id !=
1779 INVALID_SESSION) {
1780 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1781 /*
1782 * check if ADM needs to be configured with different
1783 * channel mapping than backend
1784 */
1785 if (!msm_bedais[reg].adm_override_ch)
1786 channels = msm_bedais[reg].channel;
1787 else
1788 channels = msm_bedais[reg].adm_override_ch;
1789 if (session_type == SESSION_TYPE_TX &&
1790 fdai->be_srate &&
1791 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1792 pr_debug("%s: flush strm %d diff BE rates\n",
1793 __func__, fdai->strm_id);
1794
1795 if (fdai->event_info.event_func)
1796 fdai->event_info.event_func(
1797 MSM_PCM_RT_EVT_BUF_RECFG,
1798 fdai->event_info.priv_data);
1799 fdai->be_srate = 0; /* might not need it */
1800 }
1801
1802 bits_per_sample = msm_routing_get_bit_width(
1803 msm_bedais[reg].format);
1804
1805 app_type =
1806 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1807 if (app_type && is_lsm) {
1808 app_type_idx =
1809 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1810 sample_rate =
1811 fe_dai_app_type_cfg[val][session_type][reg]
1812 .sample_rate;
1813 bits_per_sample =
1814 lsm_app_type_cfg[app_type_idx].bit_width;
1815 } else if (app_type) {
1816 app_type_idx =
1817 msm_pcm_routing_get_app_type_idx(app_type);
1818 sample_rate =
1819 fe_dai_app_type_cfg[val][session_type][reg]
1820 .sample_rate;
1821 bits_per_sample =
1822 app_type_cfg[app_type_idx].bit_width;
1823 } else
1824 sample_rate = msm_bedais[reg].sample_rate;
1825
1826 topology = msm_routing_get_adm_topology(val,
1827 session_type,
1828 reg);
1829 acdb_dev_id =
1830 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1831 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1832 sample_rate, channels, topology,
1833 fdai->perf_mode, bits_per_sample,
1834 app_type, acdb_dev_id);
1835 if ((copp_idx < 0) ||
1836 (copp_idx >= MAX_COPPS_PER_PORT)) {
1837 pr_err("%s: adm open failed\n", __func__);
1838 mutex_unlock(&routing_lock);
1839 return;
1840 }
1841 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1842 __func__, val, session_type, reg);
1843 set_bit(copp_idx,
1844 &session_copp_map[val][session_type][reg]);
1845
1846 if (msm_is_resample_needed(
1847 sample_rate,
1848 msm_bedais[reg].sample_rate))
1849 adm_copp_mfc_cfg(
1850 msm_bedais[reg].port_id, copp_idx,
1851 msm_bedais[reg].sample_rate);
1852
1853 if (session_type == SESSION_TYPE_RX &&
1854 fdai->event_info.event_func)
1855 fdai->event_info.event_func(
1856 MSM_PCM_RT_EVT_DEVSWITCH,
1857 fdai->event_info.priv_data);
1858
1859 msm_pcm_routing_build_matrix(val, session_type,
1860 path_type,
1861 fdai->perf_mode,
1862 passthr_mode);
1863 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1864 (passthr_mode == LEGACY_PCM))
1865 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1866 copp_idx, topology,
1867 channels);
1868 }
1869 } else {
1870 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1871 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1872 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1873 voc_start_playback(set, msm_bedais[reg].port_id);
1874 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
1875 fdai = &fe_dai_map[val][session_type];
1876 if (msm_bedais[reg].active && fdai->strm_id !=
1877 INVALID_SESSION) {
1878 int idx;
1879 int port_id;
1880 unsigned long copp =
1881 session_copp_map[val][session_type][reg];
1882 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1883 if (test_bit(idx, &copp))
1884 break;
1885
1886 port_id = msm_bedais[reg].port_id;
1887 topology = adm_get_topology_for_port_copp_idx(port_id,
1888 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001889 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301890 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1891 idx);
1892 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1893 __func__, copp, val, session_type, reg,
1894 topology);
1895 clear_bit(idx,
1896 &session_copp_map[val][session_type][reg]);
1897 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1898 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1899 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1900 (passthr_mode == LEGACY_PCM))
1901 msm_pcm_routing_deinit_pp(
1902 msm_bedais[reg].port_id,
1903 topology);
1904 msm_pcm_routing_build_matrix(val, session_type,
1905 path_type,
1906 fdai->perf_mode,
1907 passthr_mode);
1908 }
1909 }
1910 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1911 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1912 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1913
1914 mutex_unlock(&routing_lock);
1915}
1916
1917static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1918 struct snd_ctl_elem_value *ucontrol)
1919{
1920 struct soc_mixer_control *mc =
1921 (struct soc_mixer_control *)kcontrol->private_value;
1922
Meng Wang05d5e9a2018-03-28 16:45:03 +08001923 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301924 ucontrol->value.integer.value[0] = 1;
1925 else
1926 ucontrol->value.integer.value[0] = 0;
1927
Meng Wang05d5e9a2018-03-28 16:45:03 +08001928 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301929 ucontrol->value.integer.value[0]);
1930
1931 return 0;
1932}
1933
1934static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1935 struct snd_ctl_elem_value *ucontrol)
1936{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301937 struct snd_soc_dapm_widget *widget =
1938 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301939 struct soc_mixer_control *mc =
1940 (struct soc_mixer_control *)kcontrol->private_value;
1941 struct snd_soc_dapm_update *update = NULL;
1942
1943 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001944 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1945 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301946 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1947 update);
1948 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001949 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1950 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301951 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1952 update);
1953 }
1954
1955 return 1;
1956}
1957
1958static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
1959 struct snd_ctl_elem_value *ucontrol)
1960{
1961 struct soc_mixer_control *mc =
1962 (struct soc_mixer_control *)kcontrol->private_value;
1963
Meng Wang05d5e9a2018-03-28 16:45:03 +08001964 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301965 ucontrol->value.integer.value[0] = 1;
1966 else
1967 ucontrol->value.integer.value[0] = 0;
1968
Meng Wang05d5e9a2018-03-28 16:45:03 +08001969 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301970 ucontrol->value.integer.value[0]);
1971
1972 return 0;
1973}
1974
1975static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
1976 struct snd_ctl_elem_value *ucontrol)
1977{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301978 struct snd_soc_dapm_widget *widget =
1979 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301980 struct soc_mixer_control *mc =
1981 (struct soc_mixer_control *)kcontrol->private_value;
1982 struct snd_soc_dapm_update *update = NULL;
1983
Meng Wang05d5e9a2018-03-28 16:45:03 +08001984 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301985 ucontrol->value.integer.value[0]);
1986
1987 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08001988 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
1989 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301990 snd_soc_dapm_mixer_update_power(widget->dapm,
1991 kcontrol, 1, update);
1992 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08001993 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
1994 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301995 snd_soc_dapm_mixer_update_power(widget->dapm,
1996 kcontrol, 0, update);
1997 }
1998
1999 return 1;
2000}
2001
2002static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2003{
2004 u32 session_id = 0;
2005 u16 path_type;
2006 struct media_format_info voc_be_media_format;
2007
2008 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2009
2010 session_id = msm_pcm_routing_get_voc_sessionid(val);
2011
2012 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2013 __func__, val, session_id);
2014
2015 mutex_lock(&routing_lock);
2016
2017 if (set)
2018 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2019 else
2020 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2021
2022 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2023 afe_get_port_type(msm_bedais[reg].port_id) ==
2024 MSM_AFE_PORT_TYPE_RX) {
2025 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2026 __func__, set, msm_bedais[reg].port_id);
2027 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2028 }
2029
2030 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2031 MSM_AFE_PORT_TYPE_RX)
2032 path_type = RX_PATH;
2033 else
2034 path_type = TX_PATH;
2035
2036 if (set) {
2037 if (msm_bedais[reg].active) {
2038 voc_set_route_flag(session_id, path_type, 1);
2039
2040 memset(&voc_be_media_format, 0,
2041 sizeof(struct media_format_info));
2042
2043 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2044 voc_be_media_format.num_channels =
2045 msm_bedais[reg].channel;
2046 voc_be_media_format.sample_rate =
2047 msm_bedais[reg].sample_rate;
2048 voc_be_media_format.bits_per_sample =
2049 msm_bedais[reg].format;
2050 /* Defaulting this to 1 for voice call usecases */
2051 voc_be_media_format.channel_mapping[0] = 1;
2052
2053 voc_set_device_config(session_id, path_type,
2054 &voc_be_media_format);
2055
2056 if (voc_get_route_flag(session_id, TX_PATH) &&
2057 voc_get_route_flag(session_id, RX_PATH))
2058 voc_enable_device(session_id);
2059 } else {
2060 pr_debug("%s BE is not active\n", __func__);
2061 }
2062 } else {
2063 voc_set_route_flag(session_id, path_type, 0);
2064 voc_disable_device(session_id);
2065 }
2066
2067 mutex_unlock(&routing_lock);
2068
2069}
2070
2071static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2072 struct snd_ctl_elem_value *ucontrol)
2073{
2074 struct soc_mixer_control *mc =
2075 (struct soc_mixer_control *)kcontrol->private_value;
2076
2077 mutex_lock(&routing_lock);
2078
Meng Wang05d5e9a2018-03-28 16:45:03 +08002079 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302080 ucontrol->value.integer.value[0] = 1;
2081 else
2082 ucontrol->value.integer.value[0] = 0;
2083
2084 mutex_unlock(&routing_lock);
2085
Meng Wang05d5e9a2018-03-28 16:45:03 +08002086 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302087 ucontrol->value.integer.value[0]);
2088
2089 return 0;
2090}
2091
2092static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2093 struct snd_ctl_elem_value *ucontrol)
2094{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302095 struct snd_soc_dapm_widget *widget =
2096 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302097 struct soc_mixer_control *mc =
2098 (struct soc_mixer_control *)kcontrol->private_value;
2099 struct snd_soc_dapm_update *update = NULL;
2100
2101 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002102 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302103 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2104 update);
2105 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002106 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302107 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2108 update);
2109 }
2110
2111 return 1;
2112}
2113
2114static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2115 struct snd_ctl_elem_value *ucontrol)
2116{
2117 struct soc_mixer_control *mc =
2118 (struct soc_mixer_control *)kcontrol->private_value;
2119
2120 mutex_lock(&routing_lock);
2121
Meng Wang05d5e9a2018-03-28 16:45:03 +08002122 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302123 ucontrol->value.integer.value[0] = 1;
2124 else
2125 ucontrol->value.integer.value[0] = 0;
2126
2127 mutex_unlock(&routing_lock);
2128
Meng Wang05d5e9a2018-03-28 16:45:03 +08002129 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302130 ucontrol->value.integer.value[0]);
2131
2132 return 0;
2133}
2134
2135static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2136 struct snd_ctl_elem_value *ucontrol)
2137{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302138 struct snd_soc_dapm_widget *widget =
2139 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302140 struct soc_mixer_control *mc =
2141 (struct soc_mixer_control *)kcontrol->private_value;
2142 struct snd_soc_dapm_update *update = NULL;
2143
2144 if (ucontrol->value.integer.value[0]) {
2145 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002146 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302147 mutex_unlock(&routing_lock);
2148
2149 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2150 update);
2151 } else {
2152 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002153 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302154 mutex_unlock(&routing_lock);
2155
2156 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2157 update);
2158 }
2159
Meng Wang05d5e9a2018-03-28 16:45:03 +08002160 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302161 ucontrol->value.integer.value[0]);
2162
2163 return 1;
2164}
2165
2166/*
2167 * Return the mapping between port ID and backend ID to enable the AFE callback
2168 * to determine the acdb_dev_id from the port id
2169 */
2170int msm_pcm_get_be_id_from_port_id(int port_id)
2171{
2172 int i;
2173 int be_id = -EINVAL;
2174
2175 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2176 if (msm_bedais[i].port_id == port_id) {
2177 be_id = i;
2178 break;
2179 }
2180 }
2181
2182 return be_id;
2183}
2184
2185/*
2186 * Return the registered dev_acdb_id given a port ID to enable identifying the
2187 * correct AFE calibration information by comparing the header information.
2188 */
2189static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2190{
2191 int acdb_id = -EINVAL;
2192 int i = 0;
2193 int session;
2194 int port_type = afe_get_port_type(port_id);
2195 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2196
2197 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2198 __func__, port_id, be_id, port_type);
2199
2200 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2201 session = SESSION_TYPE_TX;
2202 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2203 session = SESSION_TYPE_RX;
2204 } else {
2205 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2206 acdb_id = -EINVAL;
2207 goto exit;
2208 }
2209
2210 if (be_id < 0) {
2211 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2212 goto exit;
2213 }
2214
2215 mutex_lock(&routing_lock);
2216 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2217 MSM_FRONTEND_DAI_MAX);
2218 if (i < MSM_FRONTEND_DAI_MAX)
2219 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2220
2221 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2222 __func__, i, session, be_id, acdb_id);
2223 mutex_unlock(&routing_lock);
2224exit:
2225 return acdb_id;
2226}
2227
2228static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2229 struct snd_ctl_elem_value *ucontrol)
2230{
2231 ucontrol->value.integer.value[0] = fm_switch_enable;
2232 pr_debug("%s: FM Switch enable %ld\n", __func__,
2233 ucontrol->value.integer.value[0]);
2234 return 0;
2235}
2236
2237static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2238 struct snd_ctl_elem_value *ucontrol)
2239{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302240 struct snd_soc_dapm_widget *widget =
2241 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302242 struct snd_soc_dapm_update *update = NULL;
2243
2244 pr_debug("%s: FM Switch enable %ld\n", __func__,
2245 ucontrol->value.integer.value[0]);
2246 if (ucontrol->value.integer.value[0])
2247 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2248 update);
2249 else
2250 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2251 update);
2252 fm_switch_enable = ucontrol->value.integer.value[0];
2253 return 1;
2254}
2255
2256static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2257 struct snd_ctl_elem_value *ucontrol)
2258{
2259 ucontrol->value.integer.value[0] = hfp_switch_enable;
2260 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2261 ucontrol->value.integer.value[0]);
2262 return 0;
2263}
2264
2265static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2266 struct snd_ctl_elem_value *ucontrol)
2267{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302268 struct snd_soc_dapm_widget *widget =
2269 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302270 struct snd_soc_dapm_update *update = NULL;
2271
2272 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2273 ucontrol->value.integer.value[0]);
2274 if (ucontrol->value.integer.value[0])
2275 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2276 1, update);
2277 else
2278 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2279 0, update);
2280 hfp_switch_enable = ucontrol->value.integer.value[0];
2281 return 1;
2282}
2283
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002284static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2285 struct snd_ctl_elem_value *ucontrol)
2286{
2287 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2288 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2289 ucontrol->value.integer.value[0]);
2290 return 0;
2291}
2292
2293static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2294 struct snd_ctl_elem_value *ucontrol)
2295{
2296 struct snd_soc_dapm_widget *widget =
2297 snd_soc_dapm_kcontrol_widget(kcontrol);
2298 struct snd_soc_dapm_update *update = NULL;
2299
2300 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2301 ucontrol->value.integer.value[0]);
2302 a2dp_switch_enable = ucontrol->value.integer.value[0];
2303 if (a2dp_switch_enable)
2304 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2305 1, update);
2306 else
2307 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2308 0, update);
2309 return 1;
2310}
2311
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302312static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2313 struct snd_ctl_elem_value *ucontrol)
2314{
2315 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2316 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2317 ucontrol->value.integer.value[0]);
2318 return 0;
2319}
2320
2321static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2322 struct snd_ctl_elem_value *ucontrol)
2323{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302324 struct snd_soc_dapm_widget *widget =
2325 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302326 struct snd_soc_dapm_update *update = NULL;
2327
2328 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2329 ucontrol->value.integer.value[0]);
2330 if (ucontrol->value.integer.value[0])
2331 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2332 update);
2333 else
2334 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2335 update);
2336 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2337 return 1;
2338}
2339
2340static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2341 struct snd_ctl_elem_value *ucontrol)
2342{
2343 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2344 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2345 ucontrol->value.integer.value[0]);
2346 return 0;
2347}
2348
2349static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2350 struct snd_ctl_elem_value *ucontrol)
2351{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302352 struct snd_soc_dapm_widget *widget =
2353 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302354 struct snd_soc_dapm_update *update = NULL;
2355
2356 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2357 ucontrol->value.integer.value[0]);
2358 if (ucontrol->value.integer.value[0])
2359 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2360 update);
2361 else
2362 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2363 update);
2364 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2365 return 1;
2366}
2367
2368static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2369 struct snd_ctl_elem_value *ucontrol)
2370{
2371 ucontrol->value.integer.value[0] = usb_switch_enable;
2372 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2373 ucontrol->value.integer.value[0]);
2374 return 0;
2375}
2376
2377static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2378 struct snd_ctl_elem_value *ucontrol)
2379{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302380 struct snd_soc_dapm_widget *widget =
2381 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302382 struct snd_soc_dapm_update *update = NULL;
2383
2384 pr_debug("%s: USB Switch enable %ld\n", __func__,
2385 ucontrol->value.integer.value[0]);
2386 if (ucontrol->value.integer.value[0])
2387 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2388 1, update);
2389 else
2390 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2391 0, update);
2392 usb_switch_enable = ucontrol->value.integer.value[0];
2393 return 1;
2394}
2395
2396static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2397 struct snd_ctl_elem_value *ucontrol)
2398{
2399 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2400 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2401 ucontrol->value.integer.value[0]);
2402 return 0;
2403}
2404
2405static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2406 struct snd_ctl_elem_value *ucontrol)
2407{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302408 struct snd_soc_dapm_widget *widget =
2409 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302410 struct snd_soc_dapm_update *update = NULL;
2411
2412 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2413 ucontrol->value.integer.value[0]);
2414 if (ucontrol->value.integer.value[0])
2415 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2416 update);
2417 else
2418 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2419 update);
2420 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2421 return 1;
2422}
2423
2424static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2425 struct snd_ctl_elem_value *ucontrol)
2426{
2427 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2428 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2429 ucontrol->value.integer.value[0]);
2430 return 0;
2431}
2432
2433static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2434 struct snd_ctl_elem_value *ucontrol)
2435{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302436 struct snd_soc_dapm_widget *widget =
2437 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302438 struct snd_soc_dapm_update *update = NULL;
2439
2440 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2441 ucontrol->value.integer.value[0]);
2442 if (ucontrol->value.integer.value[0])
2443 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2444 update);
2445 else
2446 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2447 update);
2448 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2449 return 1;
2450}
2451
2452static int msm_routing_get_tert_mi2s_switch_mixer(
2453 struct snd_kcontrol *kcontrol,
2454 struct snd_ctl_elem_value *ucontrol)
2455{
2456 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2457 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2458 ucontrol->value.integer.value[0]);
2459 return 0;
2460}
2461
2462static int msm_routing_put_tert_mi2s_switch_mixer(
2463 struct snd_kcontrol *kcontrol,
2464 struct snd_ctl_elem_value *ucontrol)
2465{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302466 struct snd_soc_dapm_widget *widget =
2467 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302468 struct snd_soc_dapm_update *update = NULL;
2469
2470 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2471 ucontrol->value.integer.value[0]);
2472 if (ucontrol->value.integer.value[0])
2473 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2474 update);
2475 else
2476 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2477 update);
2478 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2479 return 1;
2480}
2481
2482static int msm_routing_get_quat_mi2s_switch_mixer(
2483 struct snd_kcontrol *kcontrol,
2484 struct snd_ctl_elem_value *ucontrol)
2485{
2486 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2487 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2488 ucontrol->value.integer.value[0]);
2489 return 0;
2490}
2491
2492static int msm_routing_put_quat_mi2s_switch_mixer(
2493 struct snd_kcontrol *kcontrol,
2494 struct snd_ctl_elem_value *ucontrol)
2495{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302496 struct snd_soc_dapm_widget *widget =
2497 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302498 struct snd_soc_dapm_update *update = NULL;
2499
2500 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2501 ucontrol->value.integer.value[0]);
2502 if (ucontrol->value.integer.value[0])
2503 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2504 update);
2505 else
2506 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2507 update);
2508 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2509 return 1;
2510}
2511
Rohit Kumara5077932017-09-10 22:05:05 +05302512static int msm_routing_get_quin_mi2s_switch_mixer(
2513 struct snd_kcontrol *kcontrol,
2514 struct snd_ctl_elem_value *ucontrol)
2515{
2516 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2517 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2518 ucontrol->value.integer.value[0]);
2519 return 0;
2520}
2521
2522static int msm_routing_put_quin_mi2s_switch_mixer(
2523 struct snd_kcontrol *kcontrol,
2524 struct snd_ctl_elem_value *ucontrol)
2525{
2526 struct snd_soc_dapm_widget *widget =
2527 snd_soc_dapm_kcontrol_widget(kcontrol);
2528 struct snd_soc_dapm_update *update = NULL;
2529
2530 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2531 ucontrol->value.integer.value[0]);
2532 if (ucontrol->value.integer.value[0])
2533 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2534 update);
2535 else
2536 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2537 update);
2538 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2539 return 1;
2540}
2541
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302542static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2543 struct snd_ctl_elem_value *ucontrol)
2544{
2545 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2546 pr_debug("%s: FM Switch enable %ld\n", __func__,
2547 ucontrol->value.integer.value[0]);
2548 return 0;
2549}
2550
2551static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2552 struct snd_ctl_elem_value *ucontrol)
2553{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302554 struct snd_soc_dapm_widget *widget =
2555 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302556 struct snd_soc_dapm_update *update = NULL;
2557
2558 pr_debug("%s: FM Switch enable %ld\n", __func__,
2559 ucontrol->value.integer.value[0]);
2560 if (ucontrol->value.integer.value[0])
2561 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2562 update);
2563 else
2564 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2565 update);
2566 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2567 return 1;
2568}
2569
2570static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2571 struct snd_ctl_elem_value *ucontrol)
2572{
2573 ucontrol->value.integer.value[0] = lsm_port_index;
2574 return 0;
2575}
2576
2577static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2578 struct snd_ctl_elem_value *ucontrol)
2579{
2580 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2581 int mux = ucontrol->value.enumerated.item[0];
2582 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2583
2584 if (mux >= e->items) {
2585 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2586 return -EINVAL;
2587 }
2588
2589 pr_debug("%s: LSM enable %ld\n", __func__,
2590 ucontrol->value.integer.value[0]);
2591 switch (ucontrol->value.integer.value[0]) {
2592 case 1:
2593 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2594 break;
2595 case 2:
2596 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2597 break;
2598 case 3:
2599 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2600 break;
2601 case 4:
2602 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2603 break;
2604 case 5:
2605 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2606 break;
2607 case 6:
2608 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2609 break;
2610 case 7:
2611 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2612 break;
2613 case 8:
2614 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2615 break;
2616 case 9:
2617 lsm_port = ADM_LSM_PORT_ID;
2618 break;
2619 case 10:
2620 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2621 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302622 case 11:
2623 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2624 break;
2625 case 12:
2626 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2627 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302628 default:
2629 pr_err("Default lsm port");
2630 break;
2631 }
2632 set_lsm_port(lsm_port);
2633 lsm_port_index = ucontrol->value.integer.value[0];
2634
2635 return 0;
2636}
2637
2638static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2639 struct snd_ctl_elem_value *ucontrol)
2640{
2641 int i;
2642 u16 port_id;
2643 enum afe_mad_type mad_type;
2644
2645 pr_debug("%s: enter\n", __func__);
2646 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2647 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2648 strlen(lsm_port_text[i])))
2649 break;
2650
2651 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2652 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2653 return -EINVAL;
2654 }
2655
2656 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2657
2658 /*Check for Tertiary/Quaternary/INT3 TX port*/
2659 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2660 strlen(lsm_port_text[7])))
2661 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2662
2663 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2664 strlen(lsm_port_text[8])))
2665 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2666
2667 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2668 strlen(lsm_port_text[10])))
2669 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2670
2671 mad_type = afe_port_get_mad_type(port_id);
2672 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2673 mad_type);
2674 switch (mad_type) {
2675 case MAD_HW_NONE:
2676 ucontrol->value.integer.value[0] = MADNONE;
2677 break;
2678 case MAD_HW_AUDIO:
2679 ucontrol->value.integer.value[0] = MADAUDIO;
2680 break;
2681 case MAD_HW_BEACON:
2682 ucontrol->value.integer.value[0] = MADBEACON;
2683 break;
2684 case MAD_HW_ULTRASOUND:
2685 ucontrol->value.integer.value[0] = MADULTRASOUND;
2686 break;
2687 case MAD_SW_AUDIO:
2688 ucontrol->value.integer.value[0] = MADSWAUDIO;
2689 break;
2690 default:
2691 WARN(1, "Unknown\n");
2692 return -EINVAL;
2693 }
2694 return 0;
2695}
2696
2697static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2698 struct snd_ctl_elem_value *ucontrol)
2699{
2700 int i;
2701 u16 port_id;
2702 enum afe_mad_type mad_type;
2703
2704 pr_debug("%s: enter\n", __func__);
2705 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2706 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2707 strlen(lsm_port_text[i])))
2708 break;
2709
2710 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2711 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2712 return -EINVAL;
2713 }
2714
2715 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2716 switch (ucontrol->value.integer.value[0]) {
2717 case MADNONE:
2718 mad_type = MAD_HW_NONE;
2719 break;
2720 case MADAUDIO:
2721 mad_type = MAD_HW_AUDIO;
2722 break;
2723 case MADBEACON:
2724 mad_type = MAD_HW_BEACON;
2725 break;
2726 case MADULTRASOUND:
2727 mad_type = MAD_HW_ULTRASOUND;
2728 break;
2729 case MADSWAUDIO:
2730 mad_type = MAD_SW_AUDIO;
2731 break;
2732 default:
2733 WARN(1, "Unknown\n");
2734 return -EINVAL;
2735 }
2736
2737 /*Check for Tertiary/Quaternary/INT3 TX port*/
2738 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2739 strlen(lsm_port_text[7])))
2740 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2741
2742 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2743 strlen(lsm_port_text[8])))
2744 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2745
2746 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2747 strlen(lsm_port_text[10])))
2748 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2749
2750 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2751 mad_type);
2752 return afe_port_set_mad_type(port_id, mad_type);
2753}
2754
2755static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2756
2757static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2758 adm_override_chs_text);
2759
2760static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2761{
2762 int backend_id;
2763
2764 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2765 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2766 } else {
2767 pr_err("%s: unsupported backend id: %s",
2768 __func__, kcontrol->id.name);
2769 return -EINVAL;
2770 }
2771
2772 return backend_id;
2773}
2774static int msm_routing_adm_channel_config_get(
2775 struct snd_kcontrol *kcontrol,
2776 struct snd_ctl_elem_value *ucontrol)
2777{
2778 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2779
2780 if (backend_id >= 0) {
2781 mutex_lock(&routing_lock);
2782 ucontrol->value.integer.value[0] =
2783 msm_bedais[backend_id].adm_override_ch;
2784 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2785 ucontrol->value.integer.value[0], backend_id);
2786 mutex_unlock(&routing_lock);
2787 }
2788
2789 return 0;
2790}
2791
2792static int msm_routing_adm_channel_config_put(
2793 struct snd_kcontrol *kcontrol,
2794 struct snd_ctl_elem_value *ucontrol)
2795{
2796 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2797
2798 if (backend_id >= 0) {
2799 mutex_lock(&routing_lock);
2800 msm_bedais[backend_id].adm_override_ch =
2801 ucontrol->value.integer.value[0];
2802 pr_debug("%s:updating BE :%d adm channels: %d\n",
2803 __func__, backend_id,
2804 msm_bedais[backend_id].adm_override_ch);
2805 mutex_unlock(&routing_lock);
2806 }
2807
2808 return 0;
2809}
2810
2811static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2812 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2813 msm_routing_adm_channel_config_get,
2814 msm_routing_adm_channel_config_put),
2815};
2816
2817static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2818 struct snd_ctl_elem_value *ucontrol)
2819{
2820
2821 mutex_lock(&routing_lock);
2822 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2823 mutex_unlock(&routing_lock);
2824 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2825 ucontrol->value.integer.value[0]);
2826 return 0;
2827};
2828
2829static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2830 struct snd_ctl_elem_value *ucontrol)
2831{
2832 struct aanc_data aanc_info;
2833
2834 mutex_lock(&routing_lock);
2835 memset(&aanc_info, 0x00, sizeof(aanc_info));
2836 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2837 ucontrol->value.integer.value[0]);
2838 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2839 if (ucontrol->value.integer.value[0] == 0) {
2840 aanc_info.aanc_active = false;
2841 aanc_info.aanc_tx_port = 0;
2842 aanc_info.aanc_rx_port = 0;
2843 } else {
2844 aanc_info.aanc_active = true;
2845 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2846 aanc_info.aanc_tx_port =
2847 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2848 }
2849 afe_set_aanc_info(&aanc_info);
2850 mutex_unlock(&routing_lock);
2851 return 0;
2852};
2853static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2854 struct snd_ctl_elem_value *ucontrol)
2855{
2856 int idx = 0, shift = 0;
2857 struct soc_mixer_control *mc =
2858 (struct soc_mixer_control *)kcontrol->private_value;
2859
Meng Wang05d5e9a2018-03-28 16:45:03 +08002860 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2861 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302862
2863 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2864 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2865 return -EINVAL;
2866 }
2867
2868 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002869 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302870 ucontrol->value.integer.value[0] = 1;
2871 else
2872 ucontrol->value.integer.value[0] = 0;
2873
Meng Wang05d5e9a2018-03-28 16:45:03 +08002874 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302875 ucontrol->value.integer.value[0]);
2876
2877 return 0;
2878}
2879
2880static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2881 struct snd_ctl_elem_value *ucontrol)
2882{
2883 int idx = 0, shift = 0;
2884 struct soc_mixer_control *mc =
2885 (struct soc_mixer_control *)kcontrol->private_value;
2886
Meng Wang05d5e9a2018-03-28 16:45:03 +08002887 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2888 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302889
2890 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2891 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2892 return -EINVAL;
2893 }
2894
Meng Wang05d5e9a2018-03-28 16:45:03 +08002895 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2896 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302897 ucontrol->value.integer.value[0], idx, shift);
2898
2899 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002900 afe_loopback(1, msm_bedais[mc->shift].port_id,
2901 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302902 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002903 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302904 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002905 afe_loopback(0, msm_bedais[mc->shift].port_id,
2906 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302907 clear_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 }
2910
2911 return 1;
2912}
2913
2914static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2915 struct snd_ctl_elem_value *ucontrol)
2916{
2917 u16 fe_id = 0;
2918
2919 fe_id = ((struct soc_mixer_control *)
2920 kcontrol->private_value)->shift;
2921 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2922 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2923 return -EINVAL;
2924 }
2925
2926 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2927
2928 return 0;
2929}
2930
2931static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2932 struct snd_ctl_elem_value *ucontrol)
2933{
2934 u16 fe_id = 0;
2935
2936 fe_id = ((struct soc_mixer_control *)
2937 kcontrol->private_value)->shift;
2938 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2939 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2940 return -EINVAL;
2941 }
2942
2943 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
2944
2945 return 1;
2946}
2947
2948static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
2949 struct snd_ctl_elem_value *ucontrol)
2950{
2951 u16 fe_id = 0;
2952
2953 fe_id = ((struct soc_multi_mixer_control *)
2954 kcontrol->private_value)->shift;
2955 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2956 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2957 return -EINVAL;
2958 }
2959
2960 ucontrol->value.integer.value[0] =
2961 channel_mixer[fe_id].output_channel;
2962 return 0;
2963}
2964
2965static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
2966 struct snd_ctl_elem_value *ucontrol)
2967{
2968 u16 fe_id = 0;
2969
2970 fe_id = ((struct soc_multi_mixer_control *)
2971 kcontrol->private_value)->shift;
2972 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2973 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2974 return -EINVAL;
2975 }
2976
2977 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
2978 fe_id,
2979 (unsigned int)(ucontrol->value.integer.value[0]));
2980 channel_mixer[fe_id].output_channel =
2981 (unsigned int)(ucontrol->value.integer.value[0]);
2982
2983 return 1;
2984}
2985
2986static const char *const ch_mixer[] = {"Disable", "Enable"};
2987
2988/* If new backend is added, need update this array */
2989static const char *const be_name[] = {
2990"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
2991"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
2992"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
2993"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
2994"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
2995"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
2996"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
2997"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
2998"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
2999"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3000"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3001"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
3002"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "SPDIF_RX",
3003"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3004"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3005"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3006"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3007"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3008"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3009"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3010"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3011"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3012"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3013"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3014"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3015"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3016"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3017"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3018"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3019"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303020"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3021"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3022"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3023"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003024"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303025"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303026"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303027"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3028"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3029"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303030"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3031"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
3032"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303033};
3034
3035static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3036 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3037static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3038 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3039static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3040 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3041static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3042 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3043
3044static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3045 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3046static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3047 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3048static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3049 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3050static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3051 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3052static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3053 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3054static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3055 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3056static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3057 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3058static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3059 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3060
3061static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3062 unsigned int channels,
3063 unsigned int items, const char *const names[])
3064{
3065 if (uinfo->value.enumerated.item >= items)
3066 uinfo->value.enumerated.item = items - 1;
3067
3068 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3069 sizeof(uinfo->value.enumerated.name),
3070 "ALSA: too long item name '%s'\n",
3071 names[uinfo->value.enumerated.item]);
3072 strlcpy(uinfo->value.enumerated.name,
3073 names[uinfo->value.enumerated.item],
3074 sizeof(uinfo->value.enumerated.name));
3075 return 0;
3076}
3077
3078static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3079 struct snd_ctl_elem_info *uinfo)
3080{
3081 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3082
3083 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3084 uinfo->count = 1;
3085
3086 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3087 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3088
3089 return 0;
3090}
3091static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3092 struct snd_ctl_elem_value *ucontrol)
3093{
3094 u16 fe_id = 0;
3095
3096 fe_id = ((struct soc_enum *)
3097 kcontrol->private_value)->shift_l;
3098 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3099 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3100 return -EINVAL;
3101 }
3102
3103 pr_debug("%s: FE %d %s\n", __func__,
3104 fe_id,
3105 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3106 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3107 return 0;
3108}
3109
3110static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3111 struct snd_ctl_elem_value *ucontrol)
3112{
3113 u16 fe_id = 0;
3114
3115 fe_id = ((struct soc_enum *)
3116 kcontrol->private_value)->shift_l;
3117 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3118 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3119 return -EINVAL;
3120 }
3121
3122 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3123 pr_debug("%s: %s FE %d\n", __func__,
3124 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3125 fe_id);
3126 return 0;
3127}
3128
3129static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3130 struct snd_ctl_elem_info *uinfo)
3131{
3132 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3133
3134 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3135 uinfo->count = 1;
3136
3137 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3138 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3139
3140 return 0;
3141}
3142
3143static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3144 struct snd_ctl_elem_value *ucontrol)
3145{
3146 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3147 u16 fe_id = 0, in_ch = 0;
3148
3149 fe_id = e->shift_l;
3150 in_ch = e->shift_r;
3151 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3152 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3153 return -EINVAL;
3154 }
3155 if (in_ch >= ADM_MAX_CHANNELS) {
3156 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3157 return -EINVAL;
3158 }
3159
3160 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3161 return 1;
3162}
3163
3164static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3165 struct snd_ctl_elem_value *ucontrol)
3166{
3167 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3168 u16 fe_id = 0, in_ch = 0;
3169
3170 fe_id = e->shift_l;
3171 in_ch = e->shift_r;
3172 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3173 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3174 return -EINVAL;
3175 }
3176 if (in_ch >= ADM_MAX_CHANNELS) {
3177 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3178 return -EINVAL;
3179 }
3180
3181 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3182 return 1;
3183}
3184
3185
3186static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3187 struct snd_ctl_elem_info *uinfo)
3188{
3189 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3190 uinfo->count = ADM_MAX_CHANNELS;
3191 uinfo->value.integer.min = 0;
3192 uinfo->value.integer.max = WEIGHT_0_DB;
3193
3194 return 0;
3195}
3196
3197static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3198 struct snd_ctl_elem_value *ucontrol)
3199{
3200 u16 fe_id = 0, out_ch = 0;
3201 int i, weight;
3202
3203 fe_id = ((struct soc_multi_mixer_control *)
3204 kcontrol->private_value)->shift;
3205 out_ch = ((struct soc_multi_mixer_control *)
3206 kcontrol->private_value)->rshift;
3207 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3208 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3209 return -EINVAL;
3210 }
3211 if (out_ch >= ADM_MAX_CHANNELS) {
3212 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3213 return -EINVAL;
3214 }
3215
3216 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3217 __func__, fe_id,
3218 ucontrol->value.integer.value[0],
3219 ucontrol->value.integer.value[1],
3220 ucontrol->value.integer.value[2],
3221 ucontrol->value.integer.value[3],
3222 ucontrol->value.integer.value[4],
3223 ucontrol->value.integer.value[5],
3224 ucontrol->value.integer.value[6],
3225 ucontrol->value.integer.value[7]);
3226
3227 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3228 weight = ucontrol->value.integer.value[i];
3229 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3230 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3231 __func__, fe_id, out_ch, i,
3232 channel_mixer[fe_id].channel_weight[out_ch][i]);
3233 }
3234
3235 return 0;
3236}
3237
3238static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3239 struct snd_ctl_elem_value *ucontrol)
3240{
3241 u16 fe_id = 0, out_ch = 0;
3242 int i;
3243
3244 fe_id = ((struct soc_multi_mixer_control *)
3245 kcontrol->private_value)->shift;
3246 out_ch = ((struct soc_multi_mixer_control *)
3247 kcontrol->private_value)->rshift;
3248 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3249 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3250 return -EINVAL;
3251 }
3252 if (out_ch >= ADM_MAX_CHANNELS) {
3253 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3254 return -EINVAL;
3255 }
3256
3257 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3258 ucontrol->value.integer.value[i] =
3259 channel_mixer[fe_id].channel_weight[out_ch][i];
3260
3261 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3262 __func__, fe_id,
3263 ucontrol->value.integer.value[0],
3264 ucontrol->value.integer.value[1],
3265 ucontrol->value.integer.value[2],
3266 ucontrol->value.integer.value[3],
3267 ucontrol->value.integer.value[4],
3268 ucontrol->value.integer.value[5],
3269 ucontrol->value.integer.value[6],
3270 ucontrol->value.integer.value[7]);
3271
3272 return 0;
3273}
3274
3275static const struct snd_kcontrol_new channel_mixer_controls[] = {
3276 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3277 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3278 msm_pcm_get_channel_rule_index,
3279 msm_pcm_put_channel_rule_index),
3280 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3281 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3282 msm_pcm_get_channel_rule_index,
3283 msm_pcm_put_channel_rule_index),
3284 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3285 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3286 msm_pcm_get_channel_rule_index,
3287 msm_pcm_put_channel_rule_index),
3288 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3289 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3290 msm_pcm_get_channel_rule_index,
3291 msm_pcm_put_channel_rule_index),
3292 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3293 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3294 msm_pcm_get_channel_rule_index,
3295 msm_pcm_put_channel_rule_index),
3296 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3297 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3298 msm_pcm_get_channel_rule_index,
3299 msm_pcm_put_channel_rule_index),
3300
3301 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3302 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3303 msm_pcm_get_out_chs,
3304 msm_pcm_put_out_chs),
3305 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3306 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3307 msm_pcm_get_out_chs,
3308 msm_pcm_put_out_chs),
3309 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3310 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3311 msm_pcm_get_out_chs,
3312 msm_pcm_put_out_chs),
3313 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3314 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3315 msm_pcm_get_out_chs,
3316 msm_pcm_put_out_chs),
3317 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3318 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3319 msm_pcm_get_out_chs,
3320 msm_pcm_put_out_chs),
3321 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3322 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3323 msm_pcm_get_out_chs,
3324 msm_pcm_put_out_chs),
3325 {
3326 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3327 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3328 .name = "MultiMedia1 Channel Mixer",
3329 .info = msm_pcm_channel_mixer_info,
3330 .get = msm_pcm_channel_mixer_get,
3331 .put = msm_pcm_channel_mixer_put,
3332 .private_value = (unsigned long)&(mm1_channel_mux)
3333 },
3334 {
3335 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3336 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3337 .name = "MultiMedia2 Channel Mixer",
3338 .info = msm_pcm_channel_mixer_info,
3339 .get = msm_pcm_channel_mixer_get,
3340 .put = msm_pcm_channel_mixer_put,
3341 .private_value = (unsigned long)&(mm2_channel_mux)
3342 },
3343 {
3344 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3345 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3346 .name = "MultiMedia3 Channel Mixer",
3347 .info = msm_pcm_channel_mixer_info,
3348 .get = msm_pcm_channel_mixer_get,
3349 .put = msm_pcm_channel_mixer_put,
3350 .private_value = (unsigned long)&(mm3_channel_mux)
3351 },
3352 {
3353 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3354 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3355 .name = "MultiMedia4 Channel Mixer",
3356 .info = msm_pcm_channel_mixer_info,
3357 .get = msm_pcm_channel_mixer_get,
3358 .put = msm_pcm_channel_mixer_put,
3359 .private_value = (unsigned long)&(mm4_channel_mux)
3360 },
3361 {
3362 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3363 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3364 .name = "MultiMedia1 Output Channel1",
3365 .info = msm_pcm_channel_weight_info,
3366 .get = msm_pcm_channel_weight_get,
3367 .put = msm_pcm_channel_weight_put,
3368 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3369 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3370 },
3371 {
3372 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3373 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3374 .name = "MultiMedia1 Output Channel2",
3375 .info = msm_pcm_channel_weight_info,
3376 .get = msm_pcm_channel_weight_get,
3377 .put = msm_pcm_channel_weight_put,
3378 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3379 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3380 },
3381 {
3382 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3383 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3384 .name = "MultiMedia1 Output Channel3",
3385 .info = msm_pcm_channel_weight_info,
3386 .get = msm_pcm_channel_weight_get,
3387 .put = msm_pcm_channel_weight_put,
3388 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3389 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3390 },
3391 {
3392 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3393 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3394 .name = "MultiMedia1 Output Channel4",
3395 .info = msm_pcm_channel_weight_info,
3396 .get = msm_pcm_channel_weight_get,
3397 .put = msm_pcm_channel_weight_put,
3398 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3399 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3400 },
3401 {
3402 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3403 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3404 .name = "MultiMedia1 Output Channel5",
3405 .info = msm_pcm_channel_weight_info,
3406 .get = msm_pcm_channel_weight_get,
3407 .put = msm_pcm_channel_weight_put,
3408 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3409 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3410 },
3411 {
3412 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3413 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3414 .name = "MultiMedia1 Output Channel6",
3415 .info = msm_pcm_channel_weight_info,
3416 .get = msm_pcm_channel_weight_get,
3417 .put = msm_pcm_channel_weight_put,
3418 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3419 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3420 },
3421 {
3422 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3423 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3424 .name = "MultiMedia1 Output Channel7",
3425 .info = msm_pcm_channel_weight_info,
3426 .get = msm_pcm_channel_weight_get,
3427 .put = msm_pcm_channel_weight_put,
3428 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3429 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3430 },
3431 {
3432 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3433 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3434 .name = "MultiMedia1 Output Channel8",
3435 .info = msm_pcm_channel_weight_info,
3436 .get = msm_pcm_channel_weight_get,
3437 .put = msm_pcm_channel_weight_put,
3438 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3439 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3440 },
3441 {
3442 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3443 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3444 .name = "MultiMedia2 Output Channel1",
3445 .info = msm_pcm_channel_weight_info,
3446 .get = msm_pcm_channel_weight_get,
3447 .put = msm_pcm_channel_weight_put,
3448 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3449 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3450 },
3451 {
3452 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3453 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3454 .name = "MultiMedia2 Output Channel2",
3455 .info = msm_pcm_channel_weight_info,
3456 .get = msm_pcm_channel_weight_get,
3457 .put = msm_pcm_channel_weight_put,
3458 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3459 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3460 },
3461 {
3462 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3463 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3464 .name = "MultiMedia2 Output Channel3",
3465 .info = msm_pcm_channel_weight_info,
3466 .get = msm_pcm_channel_weight_get,
3467 .put = msm_pcm_channel_weight_put,
3468 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3469 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3470 },
3471 {
3472 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3473 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3474 .name = "MultiMedia3 Output Channel1",
3475 .info = msm_pcm_channel_weight_info,
3476 .get = msm_pcm_channel_weight_get,
3477 .put = msm_pcm_channel_weight_put,
3478 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3479 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3480 },
3481 {
3482 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3483 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3484 .name = "MultiMedia3 Output Channel2",
3485 .info = msm_pcm_channel_weight_info,
3486 .get = msm_pcm_channel_weight_get,
3487 .put = msm_pcm_channel_weight_put,
3488 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3489 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3490 },
3491 {
3492 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3493 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3494 .name = "MultiMedia1 Channel1",
3495 .info = msm_pcm_channel_input_be_info,
3496 .get = msm_pcm_channel_input_be_get,
3497 .put = msm_pcm_channel_input_be_put,
3498 .private_value = (unsigned long)&(mm1_ch1_enum)
3499 },
3500 {
3501 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3502 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3503 .name = "MultiMedia1 Channel2",
3504 .info = msm_pcm_channel_input_be_info,
3505 .get = msm_pcm_channel_input_be_get,
3506 .put = msm_pcm_channel_input_be_put,
3507 .private_value = (unsigned long)&(mm1_ch2_enum)
3508 },
3509 {
3510 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3511 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3512 .name = "MultiMedia1 Channel3",
3513 .info = msm_pcm_channel_input_be_info,
3514 .get = msm_pcm_channel_input_be_get,
3515 .put = msm_pcm_channel_input_be_put,
3516 .private_value = (unsigned long)&(mm1_ch3_enum)
3517 },
3518 {
3519 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3520 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3521 .name = "MultiMedia1 Channel4",
3522 .info = msm_pcm_channel_input_be_info,
3523 .get = msm_pcm_channel_input_be_get,
3524 .put = msm_pcm_channel_input_be_put,
3525 .private_value = (unsigned long)&(mm1_ch4_enum)
3526 },
3527 {
3528 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3529 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3530 .name = "MultiMedia1 Channel5",
3531 .info = msm_pcm_channel_input_be_info,
3532 .get = msm_pcm_channel_input_be_get,
3533 .put = msm_pcm_channel_input_be_put,
3534 .private_value = (unsigned long)&(mm1_ch5_enum)
3535 },
3536 {
3537 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3538 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3539 .name = "MultiMedia1 Channel6",
3540 .info = msm_pcm_channel_input_be_info,
3541 .get = msm_pcm_channel_input_be_get,
3542 .put = msm_pcm_channel_input_be_put,
3543 .private_value = (unsigned long)&(mm1_ch6_enum)
3544 },
3545 {
3546 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3547 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3548 .name = "MultiMedia1 Channel7",
3549 .info = msm_pcm_channel_input_be_info,
3550 .get = msm_pcm_channel_input_be_get,
3551 .put = msm_pcm_channel_input_be_put,
3552 .private_value = (unsigned long)&(mm1_ch7_enum)
3553 },
3554 {
3555 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3556 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3557 .name = "MultiMedia1 Channel8",
3558 .info = msm_pcm_channel_input_be_info,
3559 .get = msm_pcm_channel_input_be_get,
3560 .put = msm_pcm_channel_input_be_put,
3561 .private_value = (unsigned long)&(mm1_ch8_enum)
3562 },
3563};
3564static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3565 struct snd_ctl_elem_value *ucontrol)
3566{
3567 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3568 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3569 ucontrol->value.integer.value[0]);
3570 return 0;
3571}
3572
3573static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3574 struct snd_ctl_elem_value *ucontrol)
3575{
3576 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3577 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3578 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3579 return 0;
3580}
3581
3582static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3583 "Four", "Five", "Six", "Seven", "Eight"};
3584
3585static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3586 struct snd_ctl_elem_value *ucontrol)
3587{
3588 switch (msm_ec_ref_bit_format) {
3589 case SNDRV_PCM_FORMAT_S24_LE:
3590 ucontrol->value.integer.value[0] = 2;
3591 break;
3592 case SNDRV_PCM_FORMAT_S16_LE:
3593 ucontrol->value.integer.value[0] = 1;
3594 break;
3595 default:
3596 ucontrol->value.integer.value[0] = 0;
3597 break;
3598 }
3599 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3600 __func__, ucontrol->value.integer.value[0]);
3601 return 0;
3602}
3603
3604static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3605 struct snd_ctl_elem_value *ucontrol)
3606{
3607 u16 bit_width = 0;
3608
3609 switch (ucontrol->value.integer.value[0]) {
3610 case 2:
3611 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3612 break;
3613 case 1:
3614 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3615 break;
3616 default:
3617 msm_ec_ref_bit_format = 0;
3618 break;
3619 }
3620
3621 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3622 bit_width = 16;
3623 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3624 bit_width = 24;
3625
3626 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3627 __func__, msm_ec_ref_bit_format);
3628 adm_ec_ref_rx_bit_width(bit_width);
3629 return 0;
3630}
3631
3632static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3633
3634static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3635 struct snd_ctl_elem_value *ucontrol)
3636{
3637 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3638 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3639 __func__, ucontrol->value.integer.value[0]);
3640 return 0;
3641}
3642
3643static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3644 struct snd_ctl_elem_value *ucontrol)
3645{
3646 switch (ucontrol->value.integer.value[0]) {
3647 case 0:
3648 msm_ec_ref_sampling_rate = 0;
3649 break;
3650 case 1:
3651 msm_ec_ref_sampling_rate = 8000;
3652 break;
3653 case 2:
3654 msm_ec_ref_sampling_rate = 16000;
3655 break;
3656 case 3:
3657 msm_ec_ref_sampling_rate = 32000;
3658 break;
3659 case 4:
3660 msm_ec_ref_sampling_rate = 44100;
3661 break;
3662 case 5:
3663 msm_ec_ref_sampling_rate = 48000;
3664 break;
3665 case 6:
3666 msm_ec_ref_sampling_rate = 96000;
3667 break;
3668 case 7:
3669 msm_ec_ref_sampling_rate = 192000;
3670 break;
3671 case 8:
3672 msm_ec_ref_sampling_rate = 384000;
3673 break;
3674 default:
3675 msm_ec_ref_sampling_rate = 48000;
3676 break;
3677 }
3678 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3679 __func__, msm_ec_ref_sampling_rate);
3680 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3681 return 0;
3682}
3683
3684static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3685 "32000", "44100", "48000", "96000", "192000", "384000"};
3686
3687static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3688 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3689 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3690 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3691};
3692
3693static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3694 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3695 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3696 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3697 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3698 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3699 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3700};
3701
3702static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3703 struct snd_ctl_elem_value *ucontrol)
3704{
3705 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3706 mutex_lock(&routing_lock);
3707 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3708 mutex_unlock(&routing_lock);
3709 return 0;
3710}
3711
3712static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3713 struct snd_ctl_elem_value *ucontrol)
3714{
3715 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303716 struct snd_soc_dapm_widget *widget =
3717 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303718 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3719 struct snd_soc_dapm_update *update = NULL;
3720
3721
3722 mutex_lock(&routing_lock);
3723 switch (ucontrol->value.integer.value[0]) {
3724 case 0:
3725 msm_route_ec_ref_rx = 0;
3726 ec_ref_port_id = AFE_PORT_INVALID;
3727 break;
3728 case 1:
3729 msm_route_ec_ref_rx = 1;
3730 ec_ref_port_id = SLIMBUS_0_RX;
3731 break;
3732 case 2:
3733 msm_route_ec_ref_rx = 2;
3734 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3735 break;
3736 case 3:
3737 msm_route_ec_ref_rx = 3;
3738 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3739 break;
3740 case 4:
3741 msm_route_ec_ref_rx = 4;
3742 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3743 break;
3744 case 5:
3745 msm_route_ec_ref_rx = 5;
3746 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3747 break;
3748 case 6:
3749 msm_route_ec_ref_rx = 6;
3750 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3751 break;
3752 case 7:
3753 msm_route_ec_ref_rx = 7;
3754 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3755 break;
3756 case 9:
3757 msm_route_ec_ref_rx = 9;
3758 ec_ref_port_id = SLIMBUS_5_RX;
3759 break;
3760 case 10:
3761 msm_route_ec_ref_rx = 10;
3762 ec_ref_port_id = SLIMBUS_1_TX;
3763 break;
3764 case 11:
3765 msm_route_ec_ref_rx = 11;
3766 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3767 break;
3768 case 12:
3769 msm_route_ec_ref_rx = 12;
3770 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3771 break;
3772 case 13:
3773 msm_route_ec_ref_rx = 13;
3774 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3775 break;
3776 case 14:
3777 msm_route_ec_ref_rx = 14;
3778 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3779 break;
3780 case 15:
3781 msm_route_ec_ref_rx = 15;
3782 ec_ref_port_id = SLIMBUS_6_RX;
3783 break;
3784 case 16:
3785 msm_route_ec_ref_rx = 16;
3786 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3787 break;
3788 case 17:
3789 msm_route_ec_ref_rx = 17;
3790 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3791 break;
3792 case 18:
3793 msm_route_ec_ref_rx = 18;
3794 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3795 break;
3796 case 19:
3797 msm_route_ec_ref_rx = 19;
3798 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3799 break;
3800 case 20:
3801 msm_route_ec_ref_rx = 20;
3802 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3803 break;
3804 case 21:
3805 msm_route_ec_ref_rx = 21;
3806 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3807 break;
3808 case 22:
3809 msm_route_ec_ref_rx = 22;
3810 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3811 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003812 case 23:
3813 msm_route_ec_ref_rx = 23;
3814 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3815 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303816 case 24:
3817 msm_route_ec_ref_rx = 24;
3818 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3819 break;
3820 case 25:
3821 msm_route_ec_ref_rx = 25;
3822 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3823 break;
3824 case 26:
3825 msm_route_ec_ref_rx = 26;
3826 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3827 break;
3828 case 27:
3829 msm_route_ec_ref_rx = 27;
3830 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3831 break;
3832 case 28:
3833 msm_route_ec_ref_rx = 28;
3834 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3835 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303836 default:
3837 msm_route_ec_ref_rx = 0; /* NONE */
3838 pr_err("%s EC ref rx %ld not valid\n",
3839 __func__, ucontrol->value.integer.value[0]);
3840 ec_ref_port_id = AFE_PORT_INVALID;
3841 break;
3842 }
3843 adm_ec_ref_rx_id(ec_ref_port_id);
3844 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3845 __func__, msm_route_ec_ref_rx);
3846 mutex_unlock(&routing_lock);
3847 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3848 msm_route_ec_ref_rx, e, update);
3849 return 0;
3850}
3851
3852static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3853 "PRI_MI2S_TX", "SEC_MI2S_TX",
3854 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3855 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3856 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3857 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303858 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3859 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
3860 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2"
3861};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303862
3863static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3864 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3865};
3866
3867static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3868 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3869 msm_route_ec_ref_rx_enum[0],
3870 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3871
3872static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3873 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3874 msm_route_ec_ref_rx_enum[0],
3875 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3876
3877static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3878 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3879 msm_route_ec_ref_rx_enum[0],
3880 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3881
3882static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3883 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3884 msm_route_ec_ref_rx_enum[0],
3885 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3886
3887static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3888 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3889 msm_route_ec_ref_rx_enum[0],
3890 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3891
3892static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3893 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3894 msm_route_ec_ref_rx_enum[0],
3895 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3896
3897static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3898 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3899 msm_route_ec_ref_rx_enum[0],
3900 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3901
3902static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3903 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3904 msm_route_ec_ref_rx_enum[0],
3905 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3906
Asish Bhattacharya34504582017-08-08 12:55:01 +05303907static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
3908 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
3909 msm_route_ec_ref_rx_enum[0],
3910 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3911
Laxminath Kasam38070be2017-08-17 18:21:59 +05303912static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
3913 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
3914 msm_route_ec_ref_rx_enum[0],
3915 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3916
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303917static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
3918 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
3919 msm_route_ec_ref_rx_enum[0],
3920 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3921
3922static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
3923 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
3924 msm_route_ec_ref_rx_enum[0],
3925 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3926
3927static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
3928 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
3929 msm_route_ec_ref_rx_enum[0],
3930 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3931
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05303932static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
3933 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
3934 msm_route_ec_ref_rx_enum[0],
3935 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3936
3937static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
3938 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
3939 msm_route_ec_ref_rx_enum[0],
3940 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3941
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303942static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
3943 struct snd_ctl_elem_value *ucontrol)
3944{
3945 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
3946
3947 mutex_lock(&routing_lock);
3948 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
3949 mutex_unlock(&routing_lock);
3950 return 0;
3951}
3952
3953static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
3954 struct snd_ctl_elem_value *ucontrol)
3955{
Asish Bhattacharya34504582017-08-08 12:55:01 +05303956 struct snd_soc_dapm_widget *widget =
3957 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303958 int mux = ucontrol->value.enumerated.item[0];
3959 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3960 int ret = 1;
3961 bool state = true;
3962 uint16_t ext_ec_ref_port_id;
3963 struct snd_soc_dapm_update *update = NULL;
3964
3965 if (mux >= e->items) {
3966 pr_err("%s: Invalid mux value %d\n", __func__, mux);
3967 return -EINVAL;
3968 }
3969
3970 mutex_lock(&routing_lock);
3971 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
3972
3973 switch (msm_route_ext_ec_ref) {
3974 case EXT_EC_REF_PRI_MI2S_TX:
3975 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3976 break;
3977 case EXT_EC_REF_SEC_MI2S_TX:
3978 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3979 break;
3980 case EXT_EC_REF_TERT_MI2S_TX:
3981 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3982 break;
3983 case EXT_EC_REF_QUAT_MI2S_TX:
3984 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3985 break;
3986 case EXT_EC_REF_QUIN_MI2S_TX:
3987 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
3988 break;
3989 case EXT_EC_REF_SLIM_1_TX:
3990 ext_ec_ref_port_id = SLIMBUS_1_TX;
3991 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07003992 case EXT_EC_REF_SEC_TDM_TX:
3993 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
3994 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303995 case EXT_EC_REF_NONE:
3996 default:
3997 ext_ec_ref_port_id = AFE_PORT_INVALID;
3998 state = false;
3999 break;
4000 }
4001
4002 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4003 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4004
4005 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4006 mutex_unlock(&routing_lock);
4007 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4008 update);
4009 } else {
4010 ret = -EINVAL;
4011 mutex_unlock(&routing_lock);
4012 }
4013 return ret;
4014}
4015
4016static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4017 "SEC_MI2S_TX", "TERT_MI2S_TX",
4018 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004019 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304020
4021static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4022 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4023};
4024
4025static const struct snd_kcontrol_new voc_ext_ec_mux =
4026 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4027 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4028
4029
4030static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004031 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4032 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304033 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004035 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4036 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304037 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004039 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4040 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304041 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004043 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4044 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304045 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004047 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4048 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304049 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004051 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4052 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304053 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004055 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4056 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304057 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004059 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4060 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304061 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004063 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4064 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304065 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004067 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4068 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304069 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004071 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4072 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304073 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004075 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4076 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304077 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004079 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4080 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304081 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004083 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4084 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304085 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004087 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4088 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304089 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004091 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4092 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304093 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004095 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4096 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304097 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004099 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4100 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304101 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004103 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4104 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304105 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004107 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4108 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304109 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004111 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4112 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304113 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4114 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304115};
4116
4117static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004118 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4119 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304120 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004122 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4123 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304124 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004126 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4127 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304128 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004130 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4131 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304132 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004134 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4135 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304136 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004138 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4139 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304140 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004142 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4143 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304144 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004146 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4147 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304148 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004150 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4151 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304152 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004154 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4155 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004158 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4159 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304160 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004162 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4163 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304164 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004166 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4167 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304168 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004170 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4171 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304172 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004174 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4175 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304176 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004178 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4179 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004182 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4183 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304184 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004186 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4187 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304188 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004190 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4191 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304192 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004194 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4195 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304196 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004198 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4199 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304200 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4201 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304202};
4203
4204static const struct snd_kcontrol_new spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004205 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4206 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304207 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004209 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4210 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304211 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004213 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4214 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304215 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004217 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4218 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304219 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004221 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4222 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304223 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004225 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4226 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304227 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004229 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4230 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304231 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004233 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4234 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304235 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004237 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4238 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304239 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004241 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4242 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304243 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004245 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4246 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304247 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004249 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4250 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304251 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004253 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4254 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304255 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004257 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4258 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304259 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004261 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4262 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304263 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004265 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4266 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304267 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004269 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4270 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304271 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004273 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4274 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304275 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004277 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4278 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304279 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004281 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4282 MSM_BACKEND_DAI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304283 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004285 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4286 MSM_BACKEND_DAI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304287 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4288 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304289};
4290
4291static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004292 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4293 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304294 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004296 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4297 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304298 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004300 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4301 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304302 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004304 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4305 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304306 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004308 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4309 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304310 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004312 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4313 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304314 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004316 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4317 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304318 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004320 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4321 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304322 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004324 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4325 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304326 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004328 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4329 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304330 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004332 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4333 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304334 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004336 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4337 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304338 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004340 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4341 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304342 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004344 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4345 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304346 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004348 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4349 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304350 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004352 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4353 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304354 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4355 msm_routing_put_audio_mixer),
4356};
4357
4358static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004359 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4360 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304361 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004363 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4364 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304365 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004367 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4368 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304369 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004371 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4372 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304373 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004375 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4376 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304377 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004379 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4380 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304381 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004383 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4384 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304385 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004387 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4388 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304389 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004391 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4392 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304393 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004395 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4396 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304397 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004399 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4400 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304401 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004403 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4404 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304405 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004407 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4408 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304409 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004411 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4412 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304413 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004415 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4416 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304417 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004419 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4420 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304421 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004423 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4424 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304425 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004427 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4428 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304429 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004431 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4432 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304433 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004435 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4436 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304437 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004439 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4440 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304441 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4442 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304443};
4444
4445static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004446 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4447 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304448 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004450 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4451 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304452 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004454 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4455 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304456 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004458 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4459 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304460 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004462 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4463 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304464 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004466 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4467 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304468 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004470 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4471 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304472 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004474 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4475 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304476 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004478 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4479 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304480 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004482 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4483 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304484 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004486 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4487 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304488 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004490 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4491 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304492 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004494 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4495 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304496 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004498 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4499 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304500 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004502 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4503 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304504 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004506 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4507 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304508 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004510 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4511 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304512 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004514 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4515 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304516 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004518 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4519 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304520 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004522 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4523 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304524 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004526 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4527 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304528 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4529 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304530};
4531
4532static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004533 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4534 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304535 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004537 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4538 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304539 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004541 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4542 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304543 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004545 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4546 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304547 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004549 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4550 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304551 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004553 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4554 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304555 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004557 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4558 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304559 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004561 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4562 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304563 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004565 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4566 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304567 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004569 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4570 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304571 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004573 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4574 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304575 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004577 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4578 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304579 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004581 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4582 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304583 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004585 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4586 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304587 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004589 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4590 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304591 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004593 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4594 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304595 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004597 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4598 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304599 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004601 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4602 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304603 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004605 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4606 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304607 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004609 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4610 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304611 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004613 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4614 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304615 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4616 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304617};
4618
4619static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004620 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4621 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304622 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004624 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4625 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304626 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004628 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4629 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304630 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004632 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4633 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304634 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004636 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4637 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304638 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004640 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4641 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304642 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004644 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4645 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304646 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004648 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4649 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304650 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004652 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4653 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304654 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004656 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4657 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304658 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004660 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4661 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304662 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004664 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4665 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304666 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004668 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4669 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304670 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004672 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4673 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304674 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004676 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4677 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304678 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004680 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4681 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304682 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004684 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4685 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304686 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004688 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4689 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304690 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004692 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4693 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304694 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004696 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4697 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304698 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004700 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4701 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304702 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4703 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304704};
4705
4706static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004707 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4708 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304709 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004711 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4712 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304713 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004715 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4716 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304717 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004719 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4720 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304721 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004723 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4724 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304725 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004727 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4728 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304729 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004731 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4732 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304733 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004735 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4736 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304737 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004739 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4740 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304741 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004743 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4744 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304745 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004747 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4748 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304749 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004751 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4752 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304753 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004755 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4756 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304757 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004759 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4760 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304761 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004763 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4764 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304765 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004767 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4768 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304769 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004771 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4772 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304773 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004775 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4776 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304777 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004779 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4780 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304781 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004783 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4784 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304785 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004787 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4788 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304789 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4790 msm_routing_put_audio_mixer),
4791
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304792};
4793
4794static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004795 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4796 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304797 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004799 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4800 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304801 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004803 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4804 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304805 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004807 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4808 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304809 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004811 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4812 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304813 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004815 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4816 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304817 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004819 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4820 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304821 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004823 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4824 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304825 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004827 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4828 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304829 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004831 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4832 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304833 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004835 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4836 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304837 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004839 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4840 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304841 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004843 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4844 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304845 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004847 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4848 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304849 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004851 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4852 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304853 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004855 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4856 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304857 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004859 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4860 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304861 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004863 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4864 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304865 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004867 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4868 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304869 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4870 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304871};
4872
4873static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004874 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4875 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304876 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4877 msm_routing_put_audio_mixer),
4878};
4879
4880static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004881 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4882 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304883 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004885 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4886 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304887 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004889 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4890 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304891 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004893 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4894 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304895 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004897 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4898 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304899 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004901 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4902 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304903 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004905 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4906 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304907 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004909 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4910 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304911 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004913 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4914 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304915 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004917 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4918 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304919 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004921 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4922 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304923 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004925 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4926 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304927 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004929 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4930 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304931 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004933 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4934 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304935 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004937 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4938 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304939 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004941 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4942 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304943 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004945 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4946 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304947 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004949 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4950 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304951 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004953 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4954 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304955 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004957 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4958 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304959 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004961 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4962 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304963 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4964 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304965};
4966
4967static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004968 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4969 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004972 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4973 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004976 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4977 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004980 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4981 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004984 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4985 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004988 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4989 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004992 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4993 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004996 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4997 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005000 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305002 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005004 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5005 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305006 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5009 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305010 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005012 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5013 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305014 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005016 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5017 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305018 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005020 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5021 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305022 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005024 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005028 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5029 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305030 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005032 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5033 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305034 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005036 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5037 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305038 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005040 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5041 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305042 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005044 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5045 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305046 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005048 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5049 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305050 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5051 msm_routing_put_audio_mixer),
5052
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305053};
5054
5055static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005056 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005060 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005064 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005068 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005072 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005076 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5077 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305078 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005080 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5081 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305082 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005084 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5085 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305086 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005088 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5089 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305090 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005092 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5093 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305094 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005096 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5097 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305098 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005100 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5101 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305102 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005104 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5105 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305106 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005108 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5109 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305110 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005112 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5113 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305114 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005116 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5117 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305118 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5119 msm_routing_put_audio_mixer),
5120};
5121
5122static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005123 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5124 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305125 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005127 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5128 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305129 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005131 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5132 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305133 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005135 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5136 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305137 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005139 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5140 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305141 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005143 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5144 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305145 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005147 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5148 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305149 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005151 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5152 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305153 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005155 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5156 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305157 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005159 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5160 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305161 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005163 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5164 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305165 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005167 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5168 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305169 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005171 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5172 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305173 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005175 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5176 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305177 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005179 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5180 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305181 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005183 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5184 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305185 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5186 msm_routing_put_audio_mixer),
5187};
5188
5189static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005190 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5191 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305192 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005194 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5195 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305196 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005198 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5199 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305200 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005202 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5203 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305204 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005206 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5207 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305208 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005210 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5211 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305212 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005214 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5215 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305216 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005218 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5219 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305220 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005222 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5223 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305224 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005226 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5227 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305228 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005230 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5231 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305232 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005234 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5235 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305236 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005238 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5239 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305240 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005242 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5243 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305244 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005246 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5247 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305248 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005250 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5251 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305252 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005254 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5255 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305256 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005258 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5259 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305260 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005262 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5263 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305264 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005266 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5267 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305268 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005270 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5271 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305272 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5273 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305274};
5275
5276static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005277 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5278 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305279 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005281 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5282 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305283 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005285 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5286 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305287 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005289 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5290 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305291 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005293 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5294 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305295 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005297 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5298 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305299 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005301 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5302 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305303 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005305 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5306 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305307 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005309 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5310 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305311 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005313 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5314 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305315 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005317 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5318 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305319 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005321 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5322 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305323 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005325 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5326 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305327 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005329 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5330 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305331 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005333 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5334 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305335 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005337 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5338 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305339 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5340 msm_routing_put_audio_mixer),
5341};
5342
Karthikeyan Mani57550082018-05-03 18:43:58 -07005343static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5344 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5345 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5346 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5347 msm_routing_put_audio_mixer),
5348 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5349 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5350 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5351 msm_routing_put_audio_mixer),
5352 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5353 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5354 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5355 msm_routing_put_audio_mixer),
5356 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5357 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5358 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5359 msm_routing_put_audio_mixer),
5360 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5361 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5362 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5363 msm_routing_put_audio_mixer),
5364 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5365 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5366 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5367 msm_routing_put_audio_mixer),
5368 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5369 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5370 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5371 msm_routing_put_audio_mixer),
5372 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5373 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5374 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5375 msm_routing_put_audio_mixer),
5376 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5377 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5378 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5379 msm_routing_put_audio_mixer),
5380 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5381 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5382 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5383 msm_routing_put_audio_mixer),
5384 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5385 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5386 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5387 msm_routing_put_audio_mixer),
5388 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5389 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5390 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5391 msm_routing_put_audio_mixer),
5392 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5393 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5394 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5395 msm_routing_put_audio_mixer),
5396 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5397 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5398 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5399 msm_routing_put_audio_mixer),
5400 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5401 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5402 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5403 msm_routing_put_audio_mixer),
5404 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5405 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5406 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5407 msm_routing_put_audio_mixer),
5408};
5409
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305410 /* incall music delivery mixer */
5411static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005412 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5413 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305414 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005416 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5417 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005420 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5421 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305422 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005424 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5425 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305426 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5427 msm_routing_put_audio_mixer),
5428};
5429
5430static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005431 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5432 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305433 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005435 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5436 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305437 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005439 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5440 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305441 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005443 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5444 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305445 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5446 msm_routing_put_audio_mixer),
5447};
5448
5449static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005450 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5451 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305452 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005454 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5455 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005458 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5459 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005462 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5463 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305464 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5465 msm_routing_put_audio_mixer),
5466};
5467
5468static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005469 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5470 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305471 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005473 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5474 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305475 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005477 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5478 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305479 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005481 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5482 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305483 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005485 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5486 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305487 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005489 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5490 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305491 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005493 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5494 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305495 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005497 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5498 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305499 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005501 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5502 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305503 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005505 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5506 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305507 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005509 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5510 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305511 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005513 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5514 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305515 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005517 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5518 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305519 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005521 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5522 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305523 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005525 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5526 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305527 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005529 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5530 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305531 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5532 msm_routing_put_audio_mixer),
5533};
5534
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305535static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5536 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5537 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5538 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5539 msm_routing_put_audio_mixer),
5540 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5541 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5542 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5543 msm_routing_put_audio_mixer),
5544 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5545 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5546 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5547 msm_routing_put_audio_mixer),
5548 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5549 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5550 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5551 msm_routing_put_audio_mixer),
5552 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5553 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5554 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5555 msm_routing_put_audio_mixer),
5556 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5557 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5558 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5559 msm_routing_put_audio_mixer),
5560 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5561 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5562 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5563 msm_routing_put_audio_mixer),
5564 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5565 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5566 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5567 msm_routing_put_audio_mixer),
5568 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5569 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5570 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5571 msm_routing_put_audio_mixer),
5572 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5573 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5574 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5575 msm_routing_put_audio_mixer),
5576 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5577 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5578 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5579 msm_routing_put_audio_mixer),
5580 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5581 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5582 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5583 msm_routing_put_audio_mixer),
5584 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5585 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5586 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5587 msm_routing_put_audio_mixer),
5588 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5589 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5590 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5591 msm_routing_put_audio_mixer),
5592 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5593 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5594 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5595 msm_routing_put_audio_mixer),
5596 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5597 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5598 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5599 msm_routing_put_audio_mixer),
5600};
5601
5602static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5603 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5604 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5605 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5606 msm_routing_put_audio_mixer),
5607 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5609 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
5611 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
5615 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5617 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
5619 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5621 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
5623 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5624 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5625 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5626 msm_routing_put_audio_mixer),
5627 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5628 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5629 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5630 msm_routing_put_audio_mixer),
5631 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5632 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5634 msm_routing_put_audio_mixer),
5635 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5636 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5637 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5638 msm_routing_put_audio_mixer),
5639 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5641 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
5643 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5644 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5645 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5646 msm_routing_put_audio_mixer),
5647 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5648 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5649 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5650 msm_routing_put_audio_mixer),
5651 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5652 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5653 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5654 msm_routing_put_audio_mixer),
5655 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5656 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5657 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5658 msm_routing_put_audio_mixer),
5659 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5660 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5661 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5662 msm_routing_put_audio_mixer),
5663 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5664 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5665 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5666 msm_routing_put_audio_mixer),
5667};
5668
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305669static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005670 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005674 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005678 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005682 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005686 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005690 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5691 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305692 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005694 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5695 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305696 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005698 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5699 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305700 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005702 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5703 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305704 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005706 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5707 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305708 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005710 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5711 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305712 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005714 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5715 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305716 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005718 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305720 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005722 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5723 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305724 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005726 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5727 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305728 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005730 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5731 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305732 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5733 msm_routing_put_audio_mixer),
5734};
5735
5736static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005741 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005745 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005797 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
5801};
5802
5803static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005804 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305806 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005808 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305810 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005812 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305814 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005816 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305818 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005820 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305822 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005824 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305826 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005828 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305830 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005832 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305834 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005836 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305838 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005840 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305842 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005844 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305846 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005848 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305850 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005852 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305854 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005856 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305858 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005860 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305862 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005864 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305866 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005868 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305870 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005872 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305874 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005876 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305878 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005880 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305882 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005884 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305886 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305888};
5889
5890static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005891 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5892 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305893 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005895 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305897 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005899 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305901 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005903 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305905 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005907 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305909 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005911 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305913 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005915 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305917 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005919 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5920 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305921 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005923 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305925 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005927 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305929 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005931 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305933 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005935 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305937 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005939 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305941 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005943 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305945 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005947 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5948 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305949 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005951 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5952 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305953 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
5955};
5956
5957static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005958 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5959 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305960 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005962 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5963 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305964 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005966 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5967 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305968 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005970 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5971 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305972 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005974 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5975 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305976 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005978 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5979 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305980 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005982 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305984 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005986 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305988 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005990 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305992 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005994 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305996 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005998 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306000 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006002 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306004 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006006 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306008 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006010 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306012 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006014 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306016 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006018 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6019 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306020 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006022 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6023 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306024 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006026 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6027 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306028 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006030 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6031 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306032 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006034 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306036 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006038 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306040 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306042};
6043
6044static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006045 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6046 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306047 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006049 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6050 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306051 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006053 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6054 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306055 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006057 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6058 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306059 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006061 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6062 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306063 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006065 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6066 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306067 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006069 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306071 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006073 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306075 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006077 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306079 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006081 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306083 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006085 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306087 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006089 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306091 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006093 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306095 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006097 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306099 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006101 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306103 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006105 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6106 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306107 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006109 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6110 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306111 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006113 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6114 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306115 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006117 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6118 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306119 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006121 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6122 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306123 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006125 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6126 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306127 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6128 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306129};
6130
6131static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006132 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306134 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006136 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306138 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006140 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306142 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006144 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306146 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006148 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306150 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006152 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306154 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006156 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306158 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006160 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306162 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006164 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306166 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006168 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306170 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006172 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306174 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006176 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6177 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306178 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006180 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6181 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306182 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006184 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6185 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306186 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006188 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6189 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306190 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006192 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6193 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306194 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006196 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6197 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306198 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006200 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6201 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306202 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006204 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6205 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306206 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006208 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6209 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306210 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006212 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6213 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306214 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6215 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306216};
6217
6218static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006219 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306221 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006223 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306225 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006227 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306229 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006231 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306233 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006235 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306237 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006239 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306241 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006243 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306245 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006247 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6248 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306249 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006251 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6252 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306253 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006255 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306257 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006259 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6260 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306261 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006263 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6264 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306265 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006267 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306269 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006271 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6272 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306273 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006275 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6276 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306277 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006279 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6280 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306281 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006283 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6284 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306285 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006287 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6288 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306289 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006291 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6292 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306293 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006295 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6296 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306297 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006299 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6300 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306301 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6302 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306303};
6304
6305static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006306 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6307 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306308 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006310 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6311 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306312 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006314 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6315 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306316 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006318 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6319 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306320 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006322 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6323 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306324 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006326 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6327 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306328 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006330 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6331 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306332 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006334 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6335 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306336 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006338 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6339 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306340 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006342 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6343 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306344 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006346 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6347 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306348 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006350 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6351 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306352 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006354 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6355 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306356 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006358 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6359 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306360 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006362 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6363 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306364 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006366 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6367 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306368 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6369 msm_routing_put_audio_mixer),
6370};
6371
6372static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006373 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306375 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006377 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6378 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306379 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006381 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6382 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306383 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006385 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6386 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306387 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006389 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6390 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306391 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006393 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6394 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306395 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006397 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6398 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306399 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006401 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6402 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306403 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006405 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6406 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306407 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006409 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6410 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306411 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006413 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6414 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306415 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006417 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306419 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006421 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6422 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306423 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006425 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6426 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306427 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006429 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6430 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306431 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006433 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6434 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306435 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6436 msm_routing_put_audio_mixer),
6437};
6438
Rohit Kumara5077932017-09-10 22:05:05 +05306439static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006440 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306442 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006444 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6445 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006448 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6449 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306450 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006452 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6453 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306454 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006456 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6457 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306458 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006460 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6461 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306462 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006464 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6465 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306466 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006468 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6469 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306470 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006472 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6473 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306474 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006476 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6477 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306478 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006480 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6481 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306482 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006484 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6485 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306486 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006488 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6489 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306490 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006492 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6493 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306494 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006496 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6497 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306498 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006500 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6501 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306502 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6503 msm_routing_put_audio_mixer),
6504};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306505static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006506 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6507 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306508 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006510 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306512 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006514 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306516 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006518 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306520 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006522 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306524 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006526 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306528 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006530 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306532 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006534 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306536 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006538 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6539 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306540 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006542 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306544 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006546 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306548 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006550 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306552 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006554 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306556 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006558 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6559 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306560 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006562 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6563 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306564 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006566 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6567 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306568 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6569 msm_routing_put_audio_mixer),
6570};
6571
6572static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006573 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306575 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006577 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306579 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006581 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306583 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006585 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306587 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006589 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306591 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006593 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306595 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006597 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306599 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006601 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306603 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006605 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6606 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306607 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006609 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6610 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306611 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006613 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6614 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306615 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006617 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6618 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306619 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006621 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6622 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306623 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006625 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6626 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306627 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006629 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6630 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306631 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006633 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6634 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306635 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6636 msm_routing_put_audio_mixer),
6637};
6638
6639static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006640 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306642 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006644 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306646 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006648 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306650 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006652 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306654 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006656 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306658 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006660 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306662 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006664 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306666 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006668 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306670 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006672 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6673 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306674 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006676 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306678 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006680 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306682 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006684 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306686 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006688 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6689 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306690 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006692 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6693 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306694 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006696 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306698 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006700 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306702 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
6704};
6705
6706static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006707 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006711 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006715 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006719 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306721 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006723 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006727 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306729 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006731 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306733 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006735 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6736 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306737 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006739 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6740 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306741 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006743 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6744 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306745 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006747 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6748 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306749 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006751 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6752 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306753 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006755 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6756 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306757 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006759 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6760 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306761 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006763 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6764 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306765 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006767 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6768 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306769 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6770 msm_routing_put_audio_mixer),
6771};
6772
6773static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006798 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006802 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006806 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306808 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006814 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306816 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006818 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306820 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006822 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6823 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306824 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006826 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6827 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306828 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006830 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6831 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306832 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006834 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6835 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306836 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6837 msm_routing_put_audio_mixer),
6838};
6839
6840static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006885 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006893 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306895 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006897 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306899 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006901 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306903 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
6905};
6906
6907static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006908 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306910 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006912 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006932 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006964 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306966 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006968 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306970 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
6972};
6973
6974static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006975 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6976 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306977 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006979 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6980 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306981 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006983 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006987 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006991 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306993 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006995 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306997 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006999 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307001 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007003 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7004 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307005 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007007 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307009 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007011 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307013 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007027 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
7039};
7040
7041static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007042 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7043 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307044 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007046 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7047 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307048 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007050 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7051 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307052 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007054 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7055 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307056 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007058 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7059 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307060 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007062 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7063 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307064 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007066 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7067 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307068 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007070 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7071 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307072 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007074 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307076 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007078 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7079 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307080 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007082 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307084 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007086 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7087 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307088 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007090 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7091 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307092 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007094 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7095 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307096 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007098 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7099 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307100 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007102 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7103 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307104 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7105 msm_routing_put_audio_mixer),
7106};
7107
7108static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007109 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7110 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307111 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007113 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7114 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307115 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007117 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7118 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307119 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007121 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7122 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307123 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007125 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7126 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307127 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007129 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7130 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307131 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007133 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7134 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307135 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007137 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7138 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307139 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007141 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7142 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307143 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007145 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7146 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307147 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007149 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307151 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007153 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307155 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007157 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307159 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007161 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307163 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007165 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7166 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307167 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
7173};
7174
7175static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007176 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7177 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307178 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007180 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7181 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307182 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007184 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7185 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307186 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007188 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7189 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307190 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007192 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7193 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307194 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007196 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7197 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307198 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007200 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7201 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307202 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007204 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7205 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007208 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7209 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307210 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007212 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7213 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307214 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007216 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7217 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307218 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007220 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7221 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307222 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007224 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7225 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307226 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007228 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7229 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307230 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007232 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7233 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307234 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007236 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7237 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307238 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7239 msm_routing_put_audio_mixer),
7240};
7241
7242static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007243 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007247 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007251 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307253 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007255 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307257 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007263 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007267 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307269 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007271 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307273 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007275 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7276 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307277 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007279 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7280 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307281 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007283 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7284 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307285 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007287 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7288 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307289 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007291 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7292 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307293 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007295 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7296 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307297 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007299 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7300 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307301 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007303 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7304 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307305 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7306 msm_routing_put_audio_mixer),
7307};
7308
7309static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007310 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007314 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007318 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007322 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007326 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007330 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007334 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307336 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007338 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307340 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007342 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307344 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007346 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7347 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307348 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007350 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7351 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307352 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007354 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7355 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307356 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007358 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7359 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307360 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007362 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7363 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307364 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007366 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7367 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307368 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007370 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7371 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307372 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7373 msm_routing_put_audio_mixer),
7374};
7375
7376static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007413 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307415 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007417 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7418 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307419 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007421 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7422 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307423 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
7441};
7442
7443static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
7508};
7509
7510static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007515 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007519 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007523 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007527 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307529 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007531 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307533 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007535 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007539 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307541 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007543 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307545 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007555 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307557 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007559 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307561 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007563 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307565 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007567 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307569 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007571 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307573 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
7575};
7576
7577static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007578 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007582 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007586 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007590 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307592 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007594 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307596 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007598 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007602 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007622 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307624 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007626 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7627 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307628 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007630 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7631 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307632 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007634 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307636 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007638 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307640 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007642 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307644 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
7646};
7647
7648static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007649 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007653 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007657 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007661 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007665 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
7713};
7714
7715static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007724 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007728 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007732 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007736 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007740 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007744 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007748 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007752 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307754 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007756 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307758 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007760 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007764 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307766 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007768 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7769 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307770 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007772 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7773 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307774 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007776 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7777 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307778 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007780 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7781 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307782 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7783 msm_routing_put_audio_mixer),
7784};
7785
7786static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007787 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007791 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007795 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007799 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007803 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007807 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007811 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007815 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007819 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307821 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007823 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307825 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007827 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007831 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307833 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007835 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307837 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007839 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7840 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307841 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007843 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7844 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307845 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007847 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7848 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307849 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007851 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7852 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307853 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7854 msm_routing_put_audio_mixer),
7855};
7856
7857static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007858 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007862 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007866 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007870 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307872 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007874 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007878 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007882 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007886 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007890 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307892 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007894 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307896 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007898 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307900 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007902 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307904 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007906 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7907 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307908 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007910 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7911 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307912 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007914 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7915 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307916 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007918 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7919 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307920 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007922 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7923 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307924 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7925 msm_routing_put_audio_mixer),
7926};
7927
Rohit Kumara5077932017-09-10 22:05:05 +05307928static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007929 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007933 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007937 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007941 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307943 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007945 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007949 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007953 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007957 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007961 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307963 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007965 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307967 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007969 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307971 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007973 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307975 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007977 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7978 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307979 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007981 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7982 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307983 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007985 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7986 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307987 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007989 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7990 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307991 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007993 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7994 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307995 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7996 msm_routing_put_audio_mixer),
7997};
7998
7999static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008000 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008004 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008008 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008012 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008016 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008020 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008024 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008028 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008032 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308034 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008036 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308038 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008040 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308042 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008044 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8045 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308046 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008048 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8049 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308050 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008052 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8053 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308054 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008056 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8057 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308058 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008060 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8061 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308062 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8063 msm_routing_put_audio_mixer),
8064};
8065
8066static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008067 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008071 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008075 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008079 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008083 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008087 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008091 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008095 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008099 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008103 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008107 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008111 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308113 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008115 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308117 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008119 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308121 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008123 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308125 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008127 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308129 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008131 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308133 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
8135};
8136
8137static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008138 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308140 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008142 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308144 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008146 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308148 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008150 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308152 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008154 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308156 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008158 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308160 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008162 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308164 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008166 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308168 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008170 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308172 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008174 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308176 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008178 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308180 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008182 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308184 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008186 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8187 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308188 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008190 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8191 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308192 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008194 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8195 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308196 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008198 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8199 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308200 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008202 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8203 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308204 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8205 msm_routing_put_audio_mixer),
8206};
8207
8208static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008209 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308211 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008213 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308215 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008217 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308219 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008221 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308223 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008225 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308227 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008229 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308231 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008233 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308235 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008237 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308239 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008241 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308243 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008245 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308247 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008249 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308251 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008253 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308255 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008257 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8258 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308259 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008261 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8262 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308263 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008265 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8266 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308267 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008269 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8270 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308271 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008273 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8274 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308275 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8276 msm_routing_put_audio_mixer),
8277};
8278
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308279static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008280 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308282 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008284 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008288 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308290 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008292 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308294 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008296 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308298 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008300 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008304 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308306 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008308 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308310 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008312 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008320 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308322 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008324 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308326 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008328 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308330 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008332 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
8333 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308334 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008336 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8337 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308338 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008340 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8341 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308342 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008344 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308346 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008348 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308350 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008352 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308354 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008356 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308358 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008360 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
8361 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308362 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008364 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8365 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308366 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008368 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8369 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308370 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008372 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8373 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308374 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008376 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8377 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308378 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008380 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8381 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308382 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008384 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8385 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308386 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008388 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8389 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308390 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008392 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8393 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308394 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008396 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8397 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308398 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008400 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8401 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308402 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008404 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8405 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308406 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008408 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8409 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308410 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008412 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8413 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308414 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008416 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8417 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308418 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008420 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8421 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308422 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008424 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8425 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308426 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008428 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8429 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308430 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008432 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8433 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308434 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008436 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8437 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308438 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008440 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8441 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308442 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008444 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8445 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308446 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008448 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
8449 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308450 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008452 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8453 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308454 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008456 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8457 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308458 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8459 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05308460 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
8461 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
8462 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8463 msm_routing_put_audio_mixer),
8464 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
8465 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
8466 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8467 msm_routing_put_audio_mixer),
8468 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
8469 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
8470 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8471 msm_routing_put_audio_mixer),
8472 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
8473 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
8474 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8475 msm_routing_put_audio_mixer),
8476 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
8477 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
8478 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8479 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308480};
8481
8482static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008483 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8484 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308485 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008487 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8488 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308489 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008491 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8492 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308493 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008495 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8496 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308497 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008499 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8500 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308501 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008503 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8504 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308505 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008507 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8508 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308509 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008511 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8512 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308513 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008515 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8516 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308517 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008519 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
8520 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308521 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008523 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
8524 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308525 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008527 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8528 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308529 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008531 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8532 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308533 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008535 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8536 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308537 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008539 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8540 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308541 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008543 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8544 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308545 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008547 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8548 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308549 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008551 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8552 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308553 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008555 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8556 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308557 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008559 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8560 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308561 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008563 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8564 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308565 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008567 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8568 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308569 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008571 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8572 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308573 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008575 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8576 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308577 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008579 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8580 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308581 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008583 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8584 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308585 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008587 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8588 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308589 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008591 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8592 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308593 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008595 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8596 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308597 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008599 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8600 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308601 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008603 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8604 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308605 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008607 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8608 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308609 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008611 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8612 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308613 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008615 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8616 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308617 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8618 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05308619 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
8620 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
8621 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8622 msm_routing_put_audio_mixer),
8623 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
8625 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
8627 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
8629 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
8631 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
8633 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
8635 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
8637 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308639};
8640
8641static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008642 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8643 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308644 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008646 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8647 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308648 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008650 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8651 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308652 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008654 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8655 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308656 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008658 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8659 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308660 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008662 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
8663 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308664 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008666 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
8667 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308668 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008670 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
8671 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008674 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
8675 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308676 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008678 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
8679 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308680 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008682 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8683 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308684 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008686 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8687 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308688 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008690 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8691 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308692 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008694 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8695 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308696 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("PRI_TDM_TX_3", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008766 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308768 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008770 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8771 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308772 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008774 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8775 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308776 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8777 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05308778 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
8779 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
8780 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8781 msm_routing_put_audio_mixer),
8782 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
8783 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
8784 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8785 msm_routing_put_audio_mixer),
8786 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
8787 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
8788 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8789 msm_routing_put_audio_mixer),
8790 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
8791 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
8792 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8793 msm_routing_put_audio_mixer),
8794 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
8795 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
8796 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8797 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308798};
8799
8800static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008809 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008837 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8838 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308839 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008841 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8842 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308843 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008845 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8846 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308847 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008849 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8850 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308851 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008853 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8854 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308855 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008857 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8858 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308859 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008861 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8862 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308863 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008865 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8866 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308867 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008869 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8870 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308871 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008873 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8874 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308875 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008877 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8878 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308879 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008881 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8882 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308883 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008885 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8886 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308887 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008889 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8890 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308891 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008893 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8894 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308895 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008897 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8898 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308899 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008901 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8902 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308903 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008905 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8906 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308907 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008909 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8910 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308911 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008913 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8914 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308915 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008917 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8918 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308919 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008921 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8922 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308923 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008925 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8926 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308927 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008929 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8930 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308931 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8932 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05308933 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
8934 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
8935 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8936 msm_routing_put_audio_mixer),
8937 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
8938 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
8939 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8940 msm_routing_put_audio_mixer),
8941 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
8942 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
8943 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8944 msm_routing_put_audio_mixer),
8945 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
8946 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
8947 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8948 msm_routing_put_audio_mixer),
8949 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
8950 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
8951 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8952 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308953};
8954
8955static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008956 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8957 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308958 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008960 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8961 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308962 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008964 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8965 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308966 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008968 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8969 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308970 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008972 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8973 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308974 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008976 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8977 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308978 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008980 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
8981 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308982 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008984 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
8985 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308986 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008988 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
8989 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308990 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008992 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
8993 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308994 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008996 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8997 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308998 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009000 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9001 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309002 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009004 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9005 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309006 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009008 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9009 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309010 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009012 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9013 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309014 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009016 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9017 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309018 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009020 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9021 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309022 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009024 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9025 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309026 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009028 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9029 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309030 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009032 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9033 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309034 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009036 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9037 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309038 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009040 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9041 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309042 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009044 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9045 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309046 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009048 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9049 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309050 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009052 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9053 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309054 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009056 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9057 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309058 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009060 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9061 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309062 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009064 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9065 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309066 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009068 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9069 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309070 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009072 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9073 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309074 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009076 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9077 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309078 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009080 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9081 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309082 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009084 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9085 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309086 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009088 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9089 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309090 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009092 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9093 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309094 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009096 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9097 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309098 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009100 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9101 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309102 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009104 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9105 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309106 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009108 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9109 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309110 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9111 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309112 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9113 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9114 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9115 msm_routing_put_audio_mixer),
9116 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9117 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9118 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9119 msm_routing_put_audio_mixer),
9120 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9122 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
9124 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9126 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
9128 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9130 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309132};
9133
9134static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009135 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9136 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309137 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009139 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9140 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309141 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009143 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9144 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309145 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009147 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9148 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309149 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009151 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9152 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309153 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009155 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9156 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309157 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009159 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9160 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309161 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009163 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9164 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309165 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009167 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9168 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309169 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009171 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9172 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309173 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009175 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9176 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309177 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009179 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9180 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309181 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009183 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9184 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309185 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009187 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9188 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309189 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009191 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9192 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309193 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009195 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9196 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309197 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009199 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9200 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309201 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009203 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9204 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309205 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009207 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9208 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309209 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009211 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9212 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309213 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009215 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9216 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309217 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009219 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9220 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309221 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009223 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9224 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309225 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009231 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309233 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309271 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9273 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
9275 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9277 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
9279 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9281 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
9283 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9285 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
9287 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9289 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309291};
9292
9293static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009294 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309296 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009298 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309300 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009302 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309304 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009378 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009382 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009386 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009390 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009394 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009398 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009402 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309404 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009406 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309408 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009410 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309412 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009414 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9415 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309416 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009418 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309420 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009422 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309424 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009426 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309428 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009430 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9431 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309432 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9433 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309434 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9435 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9436 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9437 msm_routing_put_audio_mixer),
9438 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9439 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9440 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9441 msm_routing_put_audio_mixer),
9442 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9443 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9444 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9445 msm_routing_put_audio_mixer),
9446 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9447 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9448 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9449 msm_routing_put_audio_mixer),
9450 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9451 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9452 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9453 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309454};
9455
Asish Bhattacharya34504582017-08-08 12:55:01 +05309456static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009457 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309459 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009461 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309463 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009465 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9466 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309467 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009469 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9470 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309471 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009473 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9474 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309475 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009477 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9478 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309479 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009481 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9482 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309483 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009485 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9486 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309487 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009489 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9490 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309491 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009493 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9494 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309495 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009497 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9498 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309499 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009501 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9502 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309503 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009505 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9506 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309507 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009509 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9510 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309511 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009513 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9514 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309515 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009517 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9518 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309519 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009521 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9522 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309523 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009525 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9526 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309527 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009529 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9530 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309531 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009533 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9534 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309535 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009537 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9538 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309539 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009541 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9542 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309543 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009545 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9546 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309547 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009549 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9550 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309551 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009553 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9554 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309555 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009557 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9558 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309559 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009561 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9562 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309563 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009565 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9566 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309567 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009569 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9570 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309571 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009573 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9574 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309575 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009577 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309579 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009581 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309583 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009585 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9586 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309587 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009589 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9590 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309591 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009593 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9594 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309595 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9596 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309597 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9598 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9599 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9600 msm_routing_put_audio_mixer),
9601 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9602 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9603 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9604 msm_routing_put_audio_mixer),
9605 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9606 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9607 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9608 msm_routing_put_audio_mixer),
9609 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9610 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9611 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9612 msm_routing_put_audio_mixer),
9613 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9614 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9615 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9616 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +05309617};
9618
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309619static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009620 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9621 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309622 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009624 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9625 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309626 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009628 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9629 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309630 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009632 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9633 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309634 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009636 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9637 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309638 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009640 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9641 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309642 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009644 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9645 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309646 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009648 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9649 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309650 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009652 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9653 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309654 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009656 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9657 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309658 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009660 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9661 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309662 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009664 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9665 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309666 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009668 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9669 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309670 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009672 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9673 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309674 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009676 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9677 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309678 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009680 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9681 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309682 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009684 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9685 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309686 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009688 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9689 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309690 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009692 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9693 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309694 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009696 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9697 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309698 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9699 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309700 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9702 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9703 msm_routing_put_audio_mixer),
9704 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9706 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9707 msm_routing_put_audio_mixer),
9708 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9710 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
9712 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9713 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9714 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9715 msm_routing_put_audio_mixer),
9716 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9717 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9718 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9719 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309720};
9721
Laxminath Kasam38070be2017-08-17 18:21:59 +05309722static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009723 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9724 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309725 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009727 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9728 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309729 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009731 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9732 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309733 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009735 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9736 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309737 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009739 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9740 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309741 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009743 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9744 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309745 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009747 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9748 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309749 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009751 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9752 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309753 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009755 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9756 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -07009757 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009759 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9760 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309761 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009763 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9764 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309765 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009767 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9768 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309769 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009771 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9772 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309773 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009775 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9776 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309777 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009779 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9780 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309781 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009783 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9784 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309785 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009787 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9788 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309789 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009791 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9792 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309793 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009795 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9796 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009797 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009799 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9800 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009801 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009803 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009805 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009807 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009809 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009811 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009813 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009815 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9816 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009817 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009819 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009821 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009823 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009825 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9826 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309827 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9829 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9830 msm_routing_put_audio_mixer),
9831 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9833 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9834 msm_routing_put_audio_mixer),
9835 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9837 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9838 msm_routing_put_audio_mixer),
9839 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9841 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
9843 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9845 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +05309847};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309848static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009849 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9850 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309851 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009853 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9854 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309855 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009857 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9858 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309859 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009861 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9862 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309863 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009865 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9866 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309867 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009869 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9870 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309871 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009873 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9874 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309875 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009877 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9878 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309879 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9880 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +08009881 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9882 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9883 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9884 msm_routing_put_audio_mixer),
9885 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9886 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9887 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9888 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309889 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9890 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9891 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9892 msm_routing_put_audio_mixer),
9893 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9894 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9895 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9896 msm_routing_put_audio_mixer),
9897 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9898 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9899 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9900 msm_routing_put_audio_mixer),
9901 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9902 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9903 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9904 msm_routing_put_audio_mixer),
9905 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9906 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9907 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9908 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309909};
9910
9911static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009912 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9913 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309914 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009916 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9917 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309918 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009920 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9921 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309922 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9923 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +08009924 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9925 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9926 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009928 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9929 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309930 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009932 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9933 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309934 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009936 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9937 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309938 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009940 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9941 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309942 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009944 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309946 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009948 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9949 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309950 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9951 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309952 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9953 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9954 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9955 msm_routing_put_audio_mixer),
9956 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9958 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9959 msm_routing_put_audio_mixer),
9960 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9962 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9963 msm_routing_put_audio_mixer),
9964 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9966 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9967 msm_routing_put_audio_mixer),
9968 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9969 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9970 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9971 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309972};
9973
9974static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009975 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9976 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309977 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009979 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9980 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309981 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009983 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9984 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309985 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009987 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9988 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309989 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009991 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9992 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309993 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009995 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9996 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309997 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009999 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10000 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010001 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
10002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010003 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10004 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010005 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
10006 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080010007 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10008 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
10009 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
10010 msm_routing_put_audio_mixer),
10011 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10012 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
10013 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
10014 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010015 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10016 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10017 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
10018 msm_routing_put_audio_mixer),
10019 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10020 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10021 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
10022 msm_routing_put_audio_mixer),
10023 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10024 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10025 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
10026 msm_routing_put_audio_mixer),
10027 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10028 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10029 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
10030 msm_routing_put_audio_mixer),
10031 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10032 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10033 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
10034 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010035};
10036
10037static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010038 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10039 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010040 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010042 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10043 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010044 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010046 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10047 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010048 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010050 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10051 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010052 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010054 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10055 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010056 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010058 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10059 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010060 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010062 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10063 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010064 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010066 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10067 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010068 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010070 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10071 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010072 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010074 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10075 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010076 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010078 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10079 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010080 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010082 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10083 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010084 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010086 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10087 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010088 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010090 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10091 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010092 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010094 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10095 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010096 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010098 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10099 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010100 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010102 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10103 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010104 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010106 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10107 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010108 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010110 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10111 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010112 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010114 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10115 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010116 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010118 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10119 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010120 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010122 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10123 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010124 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010126 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10127 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010128 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010130 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10131 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010132 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010134 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10135 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010136 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10137 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010138 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10139 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10140 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10141 msm_routing_put_audio_mixer),
10142 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10143 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10144 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10145 msm_routing_put_audio_mixer),
10146 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10147 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10148 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10149 msm_routing_put_audio_mixer),
10150 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10151 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10152 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10153 msm_routing_put_audio_mixer),
10154 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10155 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10156 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10157 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010158};
10159
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010160static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010161 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10162 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010163 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010165 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10166 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010167 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010169 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10170 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010171 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010173 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10174 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010175 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010177 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10178 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010179 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010181 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10182 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010183 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010185 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10186 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010187 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010189 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10190 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010191 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10192 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080010193 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10194 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
10195 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10196 msm_routing_put_audio_mixer),
10197 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10198 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
10199 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10200 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010201 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10202 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10203 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10204 msm_routing_put_audio_mixer),
10205 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10206 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10207 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10208 msm_routing_put_audio_mixer),
10209 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10210 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10211 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10212 msm_routing_put_audio_mixer),
10213 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10214 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10215 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10216 msm_routing_put_audio_mixer),
10217 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10218 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10219 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
10220 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010221};
10222
10223static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010224 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10225 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010226 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010228 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10229 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010230 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010232 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10233 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010234 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010236 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10237 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010238 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010240 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10241 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010242 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010244 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10245 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010246 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010248 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10249 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010250 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010252 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10253 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010254 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10255 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080010256 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10257 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
10258 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10259 msm_routing_put_audio_mixer),
10260 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10261 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
10262 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10263 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010264 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10265 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10266 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10267 msm_routing_put_audio_mixer),
10268 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10269 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10270 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10271 msm_routing_put_audio_mixer),
10272 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10273 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10274 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10275 msm_routing_put_audio_mixer),
10276 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10277 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10278 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10279 msm_routing_put_audio_mixer),
10280 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10281 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10282 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
10283 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010284};
10285
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010286static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010287 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10288 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010289 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10290 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010291 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10292 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010293 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10294 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010295 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10296 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010297 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10298 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010299 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10300 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010301 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10302 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010303 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10304 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010305 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10306 msm_routing_put_voice_mixer),
10307};
10308
10309static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010310 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10311 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010312 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10313 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010314 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10315 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010316 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10317 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010318 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10319 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010320 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10321 msm_routing_put_voice_mixer),
10322};
10323
10324static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010325 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010327 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10328 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010329 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010331 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10332 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010333 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010335 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10336 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010337 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10338 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010339 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10340 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010341 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10342 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010343 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10344 msm_routing_put_voice_mixer),
10345};
10346
10347static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010348 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10349 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010350 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10351 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010352 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10353 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010354 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10355 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010356 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10357 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010358 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10359 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010360 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10361 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010362 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10363 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010364 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10365 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010366 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10367 msm_routing_put_voice_mixer),
10368};
10369
10370static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010371 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10372MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010373 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10374 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010375 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10376MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010377 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10378 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010379 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10380MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010381 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10382 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010383 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10384MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010385 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10386 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010387 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10388MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010389 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10390 msm_routing_put_voice_mixer),
10391};
10392
10393static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010394 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10395 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010396 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10397 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010398 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10399 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010400 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10401 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010402 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10403 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010404 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10405 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010406 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10407 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010408 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10409 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010410 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10411 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010412 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10413 msm_routing_put_voice_mixer),
10414};
10415
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080010416static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010417 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10418MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080010419 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10420 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010421 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10422MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080010423 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10424 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010425 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10426MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080010427 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10428 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010429 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10430MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080010431 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10432 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010433 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10434MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080010435 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10436 msm_routing_put_voice_mixer),
10437};
10438
Karthikeyan Mani57550082018-05-03 18:43:58 -070010439static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
10440 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10441 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
10442 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10443 msm_routing_put_voice_mixer),
10444 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
10446 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10447 msm_routing_put_voice_mixer),
10448 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
10450 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10451 msm_routing_put_voice_mixer),
10452 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10453 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
10454 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10455 msm_routing_put_voice_mixer),
10456 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10457 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
10458 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10459 msm_routing_put_voice_mixer),
10460};
10461
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010462static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010463 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10464 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10466 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010467 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10470 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010471 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10472 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010473 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10474 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010475 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10476 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10478 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010479 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10480 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010481 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10482 msm_routing_put_voice_mixer),
10483};
10484
10485static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010488 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10489 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010490 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010492 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10493 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010494 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010496 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10497 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010498 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010500 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10501 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010502 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010504 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10505 msm_routing_put_voice_mixer),
10506};
10507
10508static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010509 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10510MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010511 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10512 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010513 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10514MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010515 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10516 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010517 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10518MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010519 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10520 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010521 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10522MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010523 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10524 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010525 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10526MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010527 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10528 msm_routing_put_voice_mixer),
10529};
10530
10531static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010532 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10533MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010534 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10535 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010536 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10537MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010538 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10539 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010540 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10541MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010542 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10543 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010544 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10545MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010546 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10547 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010548 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10549MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010550 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10551 msm_routing_put_voice_mixer),
10552};
10553
10554static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010555 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10556 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010557 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10558 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010559 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10560 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010561 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10562 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010563 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10564 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010565 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10566 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010567 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10568 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010569 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10570 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010571 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10572 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010573 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10574 msm_routing_put_voice_mixer),
10575};
10576
10577static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010578 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10579 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010580 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10581 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010582 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10583 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010584 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10585 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010586 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10587 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010588 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10589 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010590 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10591 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010592 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10593 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010594 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10595 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010596 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10597 msm_routing_put_voice_mixer),
10598};
10599
10600static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010601 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010603 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10604 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010605 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010607 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10608 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010609 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010611 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10612 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010613 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010615 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10616 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010617 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010619 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10620 msm_routing_put_voice_mixer),
10621};
10622
10623static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010624 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010626 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10627 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010628 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010630 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10631 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010632 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10635 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010636 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010638 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10639 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010640 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010642 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10643 msm_routing_put_voice_mixer),
10644};
10645
10646static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010647 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10648 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010649 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10650 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010651 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010653 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10654 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010655 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10656 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010657 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10658 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010659 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010661 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10662 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010663 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10664 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010665 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10666 msm_routing_put_voice_mixer),
10667};
10668
10669static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010670 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10671 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010672 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10673 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010674 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10675 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010676 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10677 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010678 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10679 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010680 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10681 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010682 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10683 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010684 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10685 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010686 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10687 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010688 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10689 msm_routing_put_voice_mixer),
10690};
10691
10692static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010693 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10694MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010695 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10696 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010697 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10698MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010699 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10700 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010701 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10702MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010703 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10704 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010705 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10706MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010707 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10708 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010709 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10710MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010711 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10712 msm_routing_put_voice_mixer),
10713};
10714
10715static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010716 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10717MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010718 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10719 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010720 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10721MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010722 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10723 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010724 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10725MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010726 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10727 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010728 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10729MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010730 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10731 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010732 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10733MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010734 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10735 msm_routing_put_voice_mixer),
10736};
10737
10738static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010739 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10740MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010741 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10742 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010743 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10744MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010745 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10746 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010747 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10748MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010749 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10750 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010751 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10752MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010753 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10754 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010755 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10756MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010757 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10758 msm_routing_put_voice_mixer),
10759};
10760
Rohit Kumara5077932017-09-10 22:05:05 +053010761static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010762 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10763MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010764 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10765 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010766 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10767MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010768 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10769 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010770 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10771MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010772 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10773 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010774 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10775MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010776 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10777 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010778 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10779MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010780 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10781 msm_routing_put_voice_mixer),
10782};
10783
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010784static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010785 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10786 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010787 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10788 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010789 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10790 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010791 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10792 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010793 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10794 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010795 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10796 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010797 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10798 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010799 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10800 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010801 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10802 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010803 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10804 msm_routing_put_voice_mixer),
10805};
10806
10807static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010808 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10809MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010810 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10811 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010812 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10813MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010814 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10815 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010816 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10817MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010818 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10819 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010820 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10821MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010822 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10823 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010824 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10825MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010826 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10827 msm_routing_put_voice_mixer),
10828};
10829
10830static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010831 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010833 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10834 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010835 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010837 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10838 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010839 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10840 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010841 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10842 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010843 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10844 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010845 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10846 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010847 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10848 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010849 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10850 msm_routing_put_voice_mixer),
10851};
10852
10853static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010856 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10857 msm_routing_put_voice_mixer),
10858};
10859
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010860static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
10861 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10862 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
10863 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10864 msm_routing_put_voice_mixer),
10865 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10866 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
10867 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10868 msm_routing_put_voice_mixer),
10869 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10870 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
10871 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10872 msm_routing_put_voice_mixer),
10873 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10874 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
10875 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10876 msm_routing_put_voice_mixer),
10877 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10878 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
10879 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10880 msm_routing_put_voice_mixer),
10881};
10882
10883static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
10884 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
10886 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10887 msm_routing_put_voice_mixer),
10888 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
10890 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10891 msm_routing_put_voice_mixer),
10892 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
10894 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10895 msm_routing_put_voice_mixer),
10896 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
10898 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10899 msm_routing_put_voice_mixer),
10900 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
10902 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10903 msm_routing_put_voice_mixer),
10904};
10905
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010906static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010907 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010909 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010911 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10912 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010913 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10914 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010915};
10916
10917static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010918 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10919 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010920 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10921 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010922 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010924 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10925 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010926};
10927
10928static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010929 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10930 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010931 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10932 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010933 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10934 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010935 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10936 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010937};
10938
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010939static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010940 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
10941 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010942 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10943 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010944 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
10945 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010946 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10947 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010948 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010949 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10950 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010951 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010952 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10953 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010954 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010955 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10956 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010957 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010958 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10959 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010960 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010961 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10962 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010963 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010964 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10965 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010966 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010967 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10968 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010969 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053010970 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10971 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010972 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010973 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10974 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010975 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010976 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10977 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010978 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010979 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10980 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010981 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010982 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10983 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010984 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010985 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10986 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010987 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010989 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10990 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010991 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
10992MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010993 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010994 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
10996 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
10997 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
10998 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
10999 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011000};
11001
11002static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011003 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011005 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11006 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011007 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011009 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11010 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011011 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011012 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
11013 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011014 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011015 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
11016 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011017 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011018 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
11019 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011020 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011021 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
11022 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011023 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011024 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
11025 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011026 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011027 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
11028 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011029 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011030 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
11031 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011032 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053011033 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
11034 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011035 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011036 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
11037 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011038 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011039 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
11040 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011041 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011042 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
11043 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011044 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011045 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
11046 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011047 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011048 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
11049 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011050 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011051 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
11052 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011053 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
11054 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
11055 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
11056 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
11058 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011059};
11060
11061static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011062 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
11063 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011064 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11065 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011066 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
11067 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011068 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11069 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011070 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
11071 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011072 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11073 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011074 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
11075 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011076 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11077 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011078 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
11079 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011080 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11081 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011082 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
11083 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011084 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11085 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011086 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
11087 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011088 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11089 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011090 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
11091 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011092 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11093 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011094 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
11095 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011096 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11097 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011098 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011100 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11101 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011102 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011104 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11105 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011106 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
11107 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011108 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11109 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011110 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
11111 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011112 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11113 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011114 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
11115 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011116 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011118 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011120 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011122 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011124 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11125 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011126 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
11127 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
11128 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
11129 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
11130 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
11131 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011132};
11133
11134static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011135 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011137 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11138 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011139 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011141 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11142 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011143 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011145 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11146 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011147 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011149 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11150 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011151 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011153 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11154 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011155 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011157 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11158 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011159 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011161 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11162 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011163 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11164 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011165 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11166 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011167 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11168 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011169 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11170 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011171 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11172 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011173 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11174 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011175 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11176 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011177 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11178 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011179 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11180 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011181 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11182 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011183 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11184 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011185 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11186 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011187 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11188 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011189 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11190 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011191 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11192 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011193 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11194 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011195 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
11196 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011197 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11198 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011199 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11200 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011201 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11202 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011203 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11204 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011205 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11206 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011207 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11208 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011209 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11210 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011211 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11212 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
11213 1, 0, msm_routing_get_voice_stub_mixer,
11214 msm_routing_put_voice_stub_mixer),
11215 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11216 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
11217 1, 0, msm_routing_get_voice_stub_mixer,
11218 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011219};
11220
11221static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011222 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011224 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11225 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011226 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011228 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11229 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011230 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011232 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11233 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011234 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011236 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11237 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011238 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011240 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11241 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011242 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011244 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11245 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011246 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011248 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11249 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011250 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011252 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11253 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011254 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11255 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011256 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11257 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011258 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011260 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11261 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011262 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011264 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11265 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011266 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011268 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11269 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011270 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11271 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011272 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11273 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011274 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11275 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011276 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11277 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011278 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011280 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11281 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011282 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11283 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
11284 1, 0, msm_routing_get_voice_stub_mixer,
11285 msm_routing_put_voice_stub_mixer),
11286 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11287 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
11288 1, 0, msm_routing_get_voice_stub_mixer,
11289 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011290};
11291
11292static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011293 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011295 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11296 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011297 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011299 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11300 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011301 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011303 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11304 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011305 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011307 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11308 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011309 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11310 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011311 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11312 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011313 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011315 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11316 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011317 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11318 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011319 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11320 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011321 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11322 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011323 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11324 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011325 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11326 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011327 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11328 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011329 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
11330 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011331 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11332 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011333 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11334 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011335 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11336 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011337 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11338 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011339 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11340 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011341 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11342 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011343 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11344 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011345 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11346 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011347 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11348 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011349 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011351 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
11352 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011353 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11354 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
11355 1, 0, msm_routing_get_voice_stub_mixer,
11356 msm_routing_put_voice_stub_mixer),
11357 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11358 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
11359 1, 0, msm_routing_get_voice_stub_mixer,
11360 msm_routing_put_voice_stub_mixer),
11361
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011362};
11363
11364static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011365 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
11366 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011367 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11368 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011369 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011371 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11372 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011373 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
11374 MSM_BACKEND_DAI_INT_BT_SCO_TX,
11375 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011376 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011377 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
11378 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011379 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11380 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011381 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
11382 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011383 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11384 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011385 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
11386 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011387 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11388 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011389 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
11390 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011391 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11392 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011393 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
11394 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011395 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11396 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011397 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
11398 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011399 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11400 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011401 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
11402 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011403 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11404 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011405 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
11406 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011407 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11408 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011409 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
11410 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011411 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11412 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011413 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
11414 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011415 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11416 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011417 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
11418 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011419 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11420 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011421 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
11422 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011423 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11424 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011425 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
11426 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011427 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11428 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011429 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
11430 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
11431 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
11432 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
11434 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011435};
11436
11437static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011438 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11439 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011440 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011442 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011444 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011446 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11447 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011448 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011450 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11451 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011452 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011454 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11455 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011456 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011458 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11459 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011460 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011462 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11463 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011464 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011466 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11467 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011468 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011470 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011472 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011474 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11475 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011476 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11477 msm_routing_put_port_mixer),
11478};
11479
11480static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011481 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11482 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011483 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011485 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011487 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011489 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011491 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011493 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011495 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011497 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11498 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011499 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011501 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11502 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011503 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011505 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11506 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011507 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011509 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011511 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011513 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11514 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011515 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011517 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011519 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11520 msm_routing_put_port_mixer),
11521};
11522
11523static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011524 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11525 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011526 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011528 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11529 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011530 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011532 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11533 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011534 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011536 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11537 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011538 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011540 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11541 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011542 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011544 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11545 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011546 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011548 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11549 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011550 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011552 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11553 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011554 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011556 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11557 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011558 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011560 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11561 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011562 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011564 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11565 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011566 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011568 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11569 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011570 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011572 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11573 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011574 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011576 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11577 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011578 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011580 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11581 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011582 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011584 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11585 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011586 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011588 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011590 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011592 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
11593 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011594 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011596 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
11597 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011598 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011600 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011602 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011604 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011606 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011608 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_SLIMBUS_0_RX,
11610MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053011611 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011612};
11613
11614static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011615 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011617 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011619 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011621 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011623 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011625 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011627 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11628 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011629 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011631 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11632 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011633 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
11634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011635 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11636 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080011637 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11638 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011639};
11640
11641static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011644 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011648 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011652 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011654 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080011656 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11657 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011658};
11659
11660static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011661 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11662 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011663 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011665 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11666 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011667 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011669 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11670 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011671 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11672 msm_routing_put_port_mixer),
11673};
11674
11675static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011676 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11677 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011678 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011680 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11681 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011682 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011684 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11685 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011686 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11687 msm_routing_put_port_mixer),
11688};
11689
Rohit Kumara5077932017-09-10 22:05:05 +053011690static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011691 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011693 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011695 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11696 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011697 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011699 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11700 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011701 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11702 msm_routing_put_port_mixer),
11703};
11704
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011705static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011706 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011708 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011710 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011712 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
11713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011714 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011716 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011718 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011720 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011722 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011724 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011726 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011728 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11729 msm_routing_put_port_mixer),
11730};
11731
11732static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011733 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011735 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
11736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011737 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011739 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011741 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011743 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
11744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011745 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011747 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
11748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011749 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
11750 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011751 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
11752 msm_routing_put_port_mixer),
11753};
11754
11755static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011756 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11757 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011758 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011760 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011762 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011764 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11765 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011766 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011768 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11769 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011770 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011772 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11773 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011774 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011776 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11777 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011778 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011780 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11781 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011782 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011784 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11785 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011786 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011788 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011790 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011792 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11793 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011794 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011796 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11797 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011798 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011800 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11801 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011802 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11803 msm_routing_put_port_mixer),
11804};
11805
11806static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011807 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11808 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011809 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011811 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11812 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011813 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11814 msm_routing_put_port_mixer),
11815};
11816
11817static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011818 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11819 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011820 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011822 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11823 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011824 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11825 msm_routing_put_port_mixer),
11826};
11827
11828
11829static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011830 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11831 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011832 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11833 msm_routing_put_port_mixer),
11834};
11835
11836static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011837 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11838 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011839 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11840 msm_routing_put_port_mixer),
11841};
11842
Karthikeyan Mani57550082018-05-03 18:43:58 -070011843static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
11844 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11845 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11846 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11847 msm_routing_put_port_mixer),
11848};
11849
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011850static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011851 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11852 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011853 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11854 msm_routing_put_port_mixer),
11855};
11856
11857static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011858 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11859 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011860 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011862 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11863 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011864 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11865 msm_routing_put_port_mixer),
11866};
11867
11868static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011869 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011871 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011873 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11874 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011875 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011877 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011879 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011881 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011883 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011885 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11886 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011887 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011889 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11890 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011891 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011893 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11894 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011895 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011897 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11898 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011899 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011901 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11902 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011903 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011905 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11906 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080011907 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11908 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011909};
11910
11911static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011912 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011914 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
11915 msm_routing_put_port_mixer),
11916};
11917
11918static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011919 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011921 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011923 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11924 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011925 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011927 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11928 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011929 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011931 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11932 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011933 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011935 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11936 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011937 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011939 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11940 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011941 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011943 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11944 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011945 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011947 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11948 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011949 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011951 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011953 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11954 msm_routing_put_port_mixer),
11955};
11956
Rohit Kumara5077932017-09-10 22:05:05 +053011957static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011958 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11959 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011960 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011962 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11963 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011964 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011966 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11967 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011968 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011970 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11971 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011972 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011974 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11975 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011976 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011978 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11979 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011980 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011982 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11983 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011984 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11985 msm_routing_put_port_mixer),
11986};
11987
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011988static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011989 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11990 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011991 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11992 msm_routing_get_port_mixer,
11993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011994 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11995 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011996 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11997 msm_routing_get_port_mixer,
11998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011999 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012001 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12002 msm_routing_get_port_mixer,
12003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012004 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12005 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012006 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12007 msm_routing_get_port_mixer,
12008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012009 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12010 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012011 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12012 msm_routing_get_port_mixer,
12013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012014 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12015 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012016 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12017 msm_routing_get_port_mixer,
12018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012019 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012021 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12022 msm_routing_get_port_mixer,
12023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012024 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12025 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012026 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12027 msm_routing_get_port_mixer,
12028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012029 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12030 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012031 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
12032 msm_routing_get_port_mixer,
12033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012034 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12035 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012036 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
12037 msm_routing_get_port_mixer,
12038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012039 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12040 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012041 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
12042 msm_routing_get_port_mixer,
12043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012044 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12045 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012046 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
12047 msm_routing_get_port_mixer,
12048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012049 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012051 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12052 msm_routing_get_port_mixer,
12053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012054 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12055 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012056 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12057 msm_routing_get_port_mixer,
12058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012059 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12060 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012061 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12062 msm_routing_get_port_mixer,
12063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012064 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012066 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12067 msm_routing_get_port_mixer,
12068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012069 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012071 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12072 msm_routing_get_port_mixer,
12073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012074 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012076 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12077 msm_routing_get_port_mixer,
12078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012079 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12080 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012081 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12082 msm_routing_get_port_mixer,
12083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012084 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12085 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012086 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12087 msm_routing_get_port_mixer,
12088 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012089};
12090
12091static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012092 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012094 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12095 msm_routing_get_port_mixer,
12096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012097 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012099 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12100 msm_routing_get_port_mixer,
12101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012102 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012104 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12105 msm_routing_get_port_mixer,
12106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012107 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12108 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012109 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12110 msm_routing_get_port_mixer,
12111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012112 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12113 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012114 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12115 msm_routing_get_port_mixer,
12116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012117 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12118 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012119 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12120 msm_routing_get_port_mixer,
12121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012122 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012124 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12125 msm_routing_get_port_mixer,
12126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012127 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12128 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012129 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12130 msm_routing_get_port_mixer,
12131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012132 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012134 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
12135 msm_routing_get_port_mixer,
12136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012137 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012139 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
12140 msm_routing_get_port_mixer,
12141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012142 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12143 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012144 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
12145 msm_routing_get_port_mixer,
12146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012147 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12148 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012149 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
12150 msm_routing_get_port_mixer,
12151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012152 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12153 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012154 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12155 msm_routing_get_port_mixer,
12156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012157 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012159 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12160 msm_routing_get_port_mixer,
12161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012162 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012164 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12165 msm_routing_get_port_mixer,
12166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012167 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12168 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012169 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12170 msm_routing_get_port_mixer,
12171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012172 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12173 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012174 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12175 msm_routing_get_port_mixer,
12176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012177 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12178 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012179 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12180 msm_routing_get_port_mixer,
12181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012182 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12183 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012184 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12185 msm_routing_get_port_mixer,
12186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012187 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12188 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012189 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12190 msm_routing_get_port_mixer,
12191 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012192};
12193
12194static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012195 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012197 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12198 msm_routing_get_port_mixer,
12199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012200 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12201 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012202 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12203 msm_routing_get_port_mixer,
12204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012205 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12206 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012207 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12208 msm_routing_get_port_mixer,
12209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012210 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12211 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012212 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12213 msm_routing_get_port_mixer,
12214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012215 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12216 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012217 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12218 msm_routing_get_port_mixer,
12219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012220 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12221 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012222 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12223 msm_routing_get_port_mixer,
12224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012225 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012227 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12228 msm_routing_get_port_mixer,
12229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012230 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12231 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012232 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12233 msm_routing_get_port_mixer,
12234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012235 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12236 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012237 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
12238 msm_routing_get_port_mixer,
12239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012240 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12241 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012242 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
12243 msm_routing_get_port_mixer,
12244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012245 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12246 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012247 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
12248 msm_routing_get_port_mixer,
12249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012250 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12251 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012252 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
12253 msm_routing_get_port_mixer,
12254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012255 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12256 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012257 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12258 msm_routing_get_port_mixer,
12259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012260 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12261 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012262 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12263 msm_routing_get_port_mixer,
12264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012265 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12266 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012267 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12268 msm_routing_get_port_mixer,
12269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012270 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12271 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012272 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12273 msm_routing_get_port_mixer,
12274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012275 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012277 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12278 msm_routing_get_port_mixer,
12279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012280 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12281 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012282 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12283 msm_routing_get_port_mixer,
12284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012285 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12286 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012287 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12288 msm_routing_get_port_mixer,
12289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012290 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12291 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012292 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12293 msm_routing_get_port_mixer,
12294 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012295};
12296
12297static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012298 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12299 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012300 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12301 msm_routing_get_port_mixer,
12302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012303 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12304 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012305 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12306 msm_routing_get_port_mixer,
12307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012308 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012310 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12311 msm_routing_get_port_mixer,
12312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012313 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012315 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12316 msm_routing_get_port_mixer,
12317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012318 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12319 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012320 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12321 msm_routing_get_port_mixer,
12322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012323 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12324 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012325 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12326 msm_routing_get_port_mixer,
12327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012328 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12329 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012330 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12331 msm_routing_get_port_mixer,
12332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012333 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012335 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12336 msm_routing_get_port_mixer,
12337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012338 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12339 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012340 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
12341 msm_routing_get_port_mixer,
12342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012343 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12344 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012345 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
12346 msm_routing_get_port_mixer,
12347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012348 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12349 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012350 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
12351 msm_routing_get_port_mixer,
12352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012353 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012355 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
12356 msm_routing_get_port_mixer,
12357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012358 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12359 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012360 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12361 msm_routing_get_port_mixer,
12362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012363 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012365 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12366 msm_routing_get_port_mixer,
12367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012368 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12369 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012370 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12371 msm_routing_get_port_mixer,
12372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012373 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012375 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12376 msm_routing_get_port_mixer,
12377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012378 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012380 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12381 msm_routing_get_port_mixer,
12382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012383 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12384 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012385 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12386 msm_routing_get_port_mixer,
12387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012388 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12389 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012390 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12391 msm_routing_get_port_mixer,
12392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012393 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012395 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12396 msm_routing_get_port_mixer,
12397 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012398};
12399
12400static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012401 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012403 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12404 msm_routing_get_port_mixer,
12405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012406 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012408 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12409 msm_routing_get_port_mixer,
12410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012411 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12412 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012413 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12414 msm_routing_get_port_mixer,
12415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012416 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012418 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12419 msm_routing_get_port_mixer,
12420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012421 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12422 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012423 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12424 msm_routing_get_port_mixer,
12425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012426 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12427 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012428 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12429 msm_routing_get_port_mixer,
12430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012431 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12432 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012433 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12434 msm_routing_get_port_mixer,
12435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012436 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12437 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012438 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12439 msm_routing_get_port_mixer,
12440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012441 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12442 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012443 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12444 msm_routing_get_port_mixer,
12445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012446 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12447 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012448 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12449 msm_routing_get_port_mixer,
12450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012451 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012453 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12454 msm_routing_get_port_mixer,
12455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012456 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12457 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012458 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12459 msm_routing_get_port_mixer,
12460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012461 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012463 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12464 msm_routing_get_port_mixer,
12465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012466 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012468 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12469 msm_routing_get_port_mixer,
12470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012471 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12472 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012473 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12474 msm_routing_get_port_mixer,
12475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012476 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012478 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12479 msm_routing_get_port_mixer,
12480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012481 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12482 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012483 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12484 msm_routing_get_port_mixer,
12485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012486 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12487 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012488 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12489 msm_routing_get_port_mixer,
12490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012491 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12492 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012493 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12494 msm_routing_get_port_mixer,
12495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012496 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12497 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012498 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12499 msm_routing_get_port_mixer,
12500 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012501};
12502
12503static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012504 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012506 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12507 msm_routing_get_port_mixer,
12508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012509 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12510 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012511 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12512 msm_routing_get_port_mixer,
12513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012514 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12515 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012516 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12517 msm_routing_get_port_mixer,
12518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012519 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12520 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012521 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12522 msm_routing_get_port_mixer,
12523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012524 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012526 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12527 msm_routing_get_port_mixer,
12528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012529 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12530 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012531 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12532 msm_routing_get_port_mixer,
12533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012534 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12535 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012536 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12537 msm_routing_get_port_mixer,
12538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012539 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12540 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012541 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12542 msm_routing_get_port_mixer,
12543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012544 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012546 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12547 msm_routing_get_port_mixer,
12548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012549 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12550 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012551 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12552 msm_routing_get_port_mixer,
12553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012554 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12555 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012556 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12557 msm_routing_get_port_mixer,
12558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012559 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12560 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012561 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12562 msm_routing_get_port_mixer,
12563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012564 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012566 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12567 msm_routing_get_port_mixer,
12568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012569 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12570 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012571 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12572 msm_routing_get_port_mixer,
12573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012574 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12575 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012576 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12577 msm_routing_get_port_mixer,
12578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012579 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12580 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012581 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12582 msm_routing_get_port_mixer,
12583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012586 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12587 msm_routing_get_port_mixer,
12588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012589 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12590 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012591 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12592 msm_routing_get_port_mixer,
12593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012594 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12595 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012596 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12597 msm_routing_get_port_mixer,
12598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012599 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12600 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012601 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12602 msm_routing_get_port_mixer,
12603 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012604};
12605
12606static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012607 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12608 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12610 msm_routing_get_port_mixer,
12611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12615 msm_routing_get_port_mixer,
12616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012617 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12618 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012619 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12620 msm_routing_get_port_mixer,
12621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012622 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12623 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012624 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12625 msm_routing_get_port_mixer,
12626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012627 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012629 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12630 msm_routing_get_port_mixer,
12631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012632 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12633 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012634 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12635 msm_routing_get_port_mixer,
12636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012637 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12638 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012639 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12640 msm_routing_get_port_mixer,
12641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012642 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12643 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012644 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12645 msm_routing_get_port_mixer,
12646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012647 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12648 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012649 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12650 msm_routing_get_port_mixer,
12651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012652 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12653 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12655 msm_routing_get_port_mixer,
12656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012657 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12658 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012659 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12660 msm_routing_get_port_mixer,
12661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012662 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12663 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012664 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12665 msm_routing_get_port_mixer,
12666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012667 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12668 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012669 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12670 msm_routing_get_port_mixer,
12671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012672 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12673 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012674 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12675 msm_routing_get_port_mixer,
12676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012677 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12678 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012679 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12680 msm_routing_get_port_mixer,
12681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012682 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12683 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012684 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12685 msm_routing_get_port_mixer,
12686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012687 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012689 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12690 msm_routing_get_port_mixer,
12691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012692 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12693 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012694 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12695 msm_routing_get_port_mixer,
12696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012697 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12698 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012699 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12700 msm_routing_get_port_mixer,
12701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012702 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12703 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012704 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12705 msm_routing_get_port_mixer,
12706 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012707};
12708
12709static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012710 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12711 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012712 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12713 msm_routing_get_port_mixer,
12714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012715 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012717 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12718 msm_routing_get_port_mixer,
12719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012720 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12721 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012722 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12723 msm_routing_get_port_mixer,
12724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012725 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12726 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012727 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12728 msm_routing_get_port_mixer,
12729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012730 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12731 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012732 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12733 msm_routing_get_port_mixer,
12734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012735 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12736 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012737 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12738 msm_routing_get_port_mixer,
12739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012740 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12741 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012742 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12743 msm_routing_get_port_mixer,
12744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012745 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12746 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012747 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12748 msm_routing_get_port_mixer,
12749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012750 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12751 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012752 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12753 msm_routing_get_port_mixer,
12754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012755 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12756 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012757 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12758 msm_routing_get_port_mixer,
12759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012760 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12761 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012762 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12763 msm_routing_get_port_mixer,
12764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012765 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012767 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12768 msm_routing_get_port_mixer,
12769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012770 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12771 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012772 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12773 msm_routing_get_port_mixer,
12774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012775 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012777 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12778 msm_routing_get_port_mixer,
12779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012780 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12781 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012782 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12783 msm_routing_get_port_mixer,
12784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012785 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12786 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012787 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12788 msm_routing_get_port_mixer,
12789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012790 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12791 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012792 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12793 msm_routing_get_port_mixer,
12794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012795 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012797 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12798 msm_routing_get_port_mixer,
12799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012800 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12801 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012802 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12803 msm_routing_get_port_mixer,
12804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012805 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12806 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012807 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12808 msm_routing_get_port_mixer,
12809 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012810};
12811
12812static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012813 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12816 msm_routing_get_port_mixer,
12817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012818 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12819 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012820 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12821 msm_routing_get_port_mixer,
12822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012823 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12824 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012825 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12826 msm_routing_get_port_mixer,
12827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012828 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12829 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012830 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12831 msm_routing_get_port_mixer,
12832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012833 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012835 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12836 msm_routing_get_port_mixer,
12837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012838 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12839 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012840 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12841 msm_routing_get_port_mixer,
12842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012843 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12844 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012845 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12846 msm_routing_get_port_mixer,
12847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012848 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12849 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012850 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12851 msm_routing_get_port_mixer,
12852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012853 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12854 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012855 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12856 msm_routing_get_port_mixer,
12857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012858 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12859 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012860 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12861 msm_routing_get_port_mixer,
12862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012863 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012865 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12866 msm_routing_get_port_mixer,
12867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012868 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12869 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012870 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12871 msm_routing_get_port_mixer,
12872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012873 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12874 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012875 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12876 msm_routing_get_port_mixer,
12877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012878 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12879 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012880 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12881 msm_routing_get_port_mixer,
12882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012883 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12884 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012885 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12886 msm_routing_get_port_mixer,
12887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012888 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12889 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012890 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12891 msm_routing_get_port_mixer,
12892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012893 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12894 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012895 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12896 msm_routing_get_port_mixer,
12897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012898 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12899 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012900 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12901 msm_routing_get_port_mixer,
12902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012903 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12904 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012905 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12906 msm_routing_get_port_mixer,
12907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012908 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12909 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012910 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12911 msm_routing_get_port_mixer,
12912 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012913};
12914
12915static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012916 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12917 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012918 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12919 msm_routing_get_port_mixer,
12920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012921 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12922 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012923 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12924 msm_routing_get_port_mixer,
12925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012926 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012928 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12929 msm_routing_get_port_mixer,
12930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012931 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12932 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012933 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12934 msm_routing_get_port_mixer,
12935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012936 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012938 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12939 msm_routing_get_port_mixer,
12940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012941 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12942 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012943 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12944 msm_routing_get_port_mixer,
12945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012946 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12947 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012948 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12949 msm_routing_get_port_mixer,
12950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012951 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12952 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012953 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12954 msm_routing_get_port_mixer,
12955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012956 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012958 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12959 msm_routing_get_port_mixer,
12960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012961 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12962 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012963 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12964 msm_routing_get_port_mixer,
12965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012966 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012968 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12969 msm_routing_get_port_mixer,
12970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012971 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12972 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012973 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12974 msm_routing_get_port_mixer,
12975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12979 msm_routing_get_port_mixer,
12980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012981 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12982 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012983 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12984 msm_routing_get_port_mixer,
12985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012986 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12987 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12989 msm_routing_get_port_mixer,
12990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012991 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12992 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012993 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12994 msm_routing_get_port_mixer,
12995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012996 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12997 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012998 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12999 msm_routing_get_port_mixer,
13000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013001 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13002 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013003 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13004 msm_routing_get_port_mixer,
13005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013006 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013008 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13009 msm_routing_get_port_mixer,
13010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013011 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013013 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13014 msm_routing_get_port_mixer,
13015 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016};
13017
13018static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13022 msm_routing_get_port_mixer,
13023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013024 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13025 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013026 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13027 msm_routing_get_port_mixer,
13028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013029 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13030 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013031 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13032 msm_routing_get_port_mixer,
13033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013034 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013036 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13037 msm_routing_get_port_mixer,
13038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13042 msm_routing_get_port_mixer,
13043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013044 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13045 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013046 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13047 msm_routing_get_port_mixer,
13048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013049 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13050 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013051 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13052 msm_routing_get_port_mixer,
13053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013056 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13057 msm_routing_get_port_mixer,
13058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13062 msm_routing_get_port_mixer,
13063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013064 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13065 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013066 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13067 msm_routing_get_port_mixer,
13068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013069 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13070 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013071 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13072 msm_routing_get_port_mixer,
13073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013074 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13075 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013076 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13077 msm_routing_get_port_mixer,
13078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013079 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013081 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13082 msm_routing_get_port_mixer,
13083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013084 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13085 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013086 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13087 msm_routing_get_port_mixer,
13088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013089 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013091 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13092 msm_routing_get_port_mixer,
13093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013094 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013096 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13097 msm_routing_get_port_mixer,
13098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013099 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013101 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13102 msm_routing_get_port_mixer,
13103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013104 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13105 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013106 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13107 msm_routing_get_port_mixer,
13108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013109 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13110 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013111 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13112 msm_routing_get_port_mixer,
13113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013116 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13117 msm_routing_get_port_mixer,
13118 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013119};
13120
13121static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013122 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013124 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13125 msm_routing_get_port_mixer,
13126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013127 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013129 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13130 msm_routing_get_port_mixer,
13131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013132 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13133 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013134 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13135 msm_routing_get_port_mixer,
13136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013137 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13138 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013139 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13140 msm_routing_get_port_mixer,
13141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013142 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013144 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13145 msm_routing_get_port_mixer,
13146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013147 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13148 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013149 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13150 msm_routing_get_port_mixer,
13151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013152 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13153 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013154 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13155 msm_routing_get_port_mixer,
13156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013157 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013159 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13160 msm_routing_get_port_mixer,
13161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013162 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013164 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13165 msm_routing_get_port_mixer,
13166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013167 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13168 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013169 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13170 msm_routing_get_port_mixer,
13171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013172 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13173 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013174 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13175 msm_routing_get_port_mixer,
13176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013177 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013179 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13180 msm_routing_get_port_mixer,
13181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013182 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13183 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013184 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13185 msm_routing_get_port_mixer,
13186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013187 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13188 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013189 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13190 msm_routing_get_port_mixer,
13191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013192 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13193 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013194 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13195 msm_routing_get_port_mixer,
13196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013197 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13198 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013199 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13200 msm_routing_get_port_mixer,
13201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013202 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13203 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013204 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13205 msm_routing_get_port_mixer,
13206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013207 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13208 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013209 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13210 msm_routing_get_port_mixer,
13211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013212 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13213 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013214 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13215 msm_routing_get_port_mixer,
13216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013219 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13220 msm_routing_get_port_mixer,
13221 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013222};
13223
13224static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013227 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13228 msm_routing_get_port_mixer,
13229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013230 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013232 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13233 msm_routing_get_port_mixer,
13234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013235 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13236 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013237 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13238 msm_routing_get_port_mixer,
13239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013240 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013242 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13243 msm_routing_get_port_mixer,
13244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013245 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013247 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13248 msm_routing_get_port_mixer,
13249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013250 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013252 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13253 msm_routing_get_port_mixer,
13254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013255 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13256 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013257 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13258 msm_routing_get_port_mixer,
13259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013260 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13261 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013262 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13263 msm_routing_get_port_mixer,
13264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013265 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013267 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13268 msm_routing_get_port_mixer,
13269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013270 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13271 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013272 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13273 msm_routing_get_port_mixer,
13274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013275 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13276 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013277 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13278 msm_routing_get_port_mixer,
13279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013282 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13283 msm_routing_get_port_mixer,
13284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013285 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13286 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013287 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13288 msm_routing_get_port_mixer,
13289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013290 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13291 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013292 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13293 msm_routing_get_port_mixer,
13294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013295 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013297 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13298 msm_routing_get_port_mixer,
13299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013300 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13301 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013302 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13303 msm_routing_get_port_mixer,
13304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013305 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13306 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013307 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13308 msm_routing_get_port_mixer,
13309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013310 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13311 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013312 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13313 msm_routing_get_port_mixer,
13314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013315 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013317 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13318 msm_routing_get_port_mixer,
13319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013320 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13321 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013322 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13323 msm_routing_get_port_mixer,
13324 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013325};
13326
13327static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013328 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013330 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13331 msm_routing_get_port_mixer,
13332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013333 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013335 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13336 msm_routing_get_port_mixer,
13337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013338 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13339 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013340 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13341 msm_routing_get_port_mixer,
13342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013343 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013345 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13346 msm_routing_get_port_mixer,
13347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013348 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13349 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013350 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13351 msm_routing_get_port_mixer,
13352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013353 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013355 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13356 msm_routing_get_port_mixer,
13357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013358 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13359 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013360 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13361 msm_routing_get_port_mixer,
13362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013363 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13364 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013365 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13366 msm_routing_get_port_mixer,
13367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013368 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013370 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13371 msm_routing_get_port_mixer,
13372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013373 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013375 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13376 msm_routing_get_port_mixer,
13377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013378 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13379 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013380 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13381 msm_routing_get_port_mixer,
13382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013383 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013385 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13386 msm_routing_get_port_mixer,
13387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013388 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013390 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13391 msm_routing_get_port_mixer,
13392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013393 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013395 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13396 msm_routing_get_port_mixer,
13397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013400 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13401 msm_routing_get_port_mixer,
13402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013403 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13404 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013405 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13406 msm_routing_get_port_mixer,
13407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013408 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013410 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13411 msm_routing_get_port_mixer,
13412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013413 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13414 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013415 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13416 msm_routing_get_port_mixer,
13417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013418 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13419 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013420 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13421 msm_routing_get_port_mixer,
13422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013423 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13424 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013425 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13426 msm_routing_get_port_mixer,
13427 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013428};
13429
13430static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013431 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013433 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13434 msm_routing_get_port_mixer,
13435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013438 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13439 msm_routing_get_port_mixer,
13440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013441 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13442 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013443 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13444 msm_routing_get_port_mixer,
13445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013446 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013448 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13449 msm_routing_get_port_mixer,
13450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013451 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13452 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013453 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13454 msm_routing_get_port_mixer,
13455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013456 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013458 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13459 msm_routing_get_port_mixer,
13460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013461 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13462 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013463 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13464 msm_routing_get_port_mixer,
13465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013466 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13467 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013468 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13469 msm_routing_get_port_mixer,
13470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013471 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13472 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013473 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13474 msm_routing_get_port_mixer,
13475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013476 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013478 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13479 msm_routing_get_port_mixer,
13480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013481 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013483 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13484 msm_routing_get_port_mixer,
13485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013486 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13487 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013488 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13489 msm_routing_get_port_mixer,
13490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013491 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13492 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013493 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13494 msm_routing_get_port_mixer,
13495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013496 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13497 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013498 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13499 msm_routing_get_port_mixer,
13500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013501 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13502 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013503 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13504 msm_routing_get_port_mixer,
13505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013506 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013508 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13509 msm_routing_get_port_mixer,
13510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013511 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013513 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13514 msm_routing_get_port_mixer,
13515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013516 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13517 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013518 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13519 msm_routing_get_port_mixer,
13520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013523 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13524 msm_routing_get_port_mixer,
13525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013526 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13527 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013528 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13529 msm_routing_get_port_mixer,
13530 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013531};
13532
13533static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013534 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13535 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013536 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13537 msm_routing_get_port_mixer,
13538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013539 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013541 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13542 msm_routing_get_port_mixer,
13543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013544 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13545 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013546 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13547 msm_routing_get_port_mixer,
13548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013549 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013551 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13552 msm_routing_get_port_mixer,
13553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013554 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13555 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013556 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13557 msm_routing_get_port_mixer,
13558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013559 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013561 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13562 msm_routing_get_port_mixer,
13563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013564 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13565 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013566 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13567 msm_routing_get_port_mixer,
13568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013569 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013571 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13572 msm_routing_get_port_mixer,
13573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013574 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13575 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013576 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13577 msm_routing_get_port_mixer,
13578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013579 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13580 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013581 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13582 msm_routing_get_port_mixer,
13583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013584 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013586 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13587 msm_routing_get_port_mixer,
13588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013589 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013591 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13592 msm_routing_get_port_mixer,
13593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013594 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13595 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013596 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13597 msm_routing_get_port_mixer,
13598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013599 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13600 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013601 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13602 msm_routing_get_port_mixer,
13603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013606 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13607 msm_routing_get_port_mixer,
13608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013609 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013611 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13612 msm_routing_get_port_mixer,
13613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013614 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13615 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013616 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13617 msm_routing_get_port_mixer,
13618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013619 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13620 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013621 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13622 msm_routing_get_port_mixer,
13623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013624 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13625 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013626 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13627 msm_routing_get_port_mixer,
13628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013629 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013631 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13632 msm_routing_get_port_mixer,
13633 msm_routing_put_port_mixer),
13634};
13635
13636static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013637 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013639 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13640 msm_routing_get_port_mixer,
13641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013642 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013644 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13645 msm_routing_get_port_mixer,
13646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013647 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13648 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013649 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13650 msm_routing_get_port_mixer,
13651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013652 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13653 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013654 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13655 msm_routing_get_port_mixer,
13656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013657 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013659 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13660 msm_routing_get_port_mixer,
13661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013662 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013664 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13665 msm_routing_get_port_mixer,
13666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013667 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013669 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13670 msm_routing_get_port_mixer,
13671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013672 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13673 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013674 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13675 msm_routing_get_port_mixer,
13676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013677 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13678 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013679 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13680 msm_routing_get_port_mixer,
13681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013682 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013684 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13685 msm_routing_get_port_mixer,
13686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013687 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013689 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13690 msm_routing_get_port_mixer,
13691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013692 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13693 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013694 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13695 msm_routing_get_port_mixer,
13696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013697 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013699 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13700 msm_routing_get_port_mixer,
13701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013702 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013704 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13705 msm_routing_get_port_mixer,
13706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013707 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013709 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13710 msm_routing_get_port_mixer,
13711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013712 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13713 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013714 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13715 msm_routing_get_port_mixer,
13716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013717 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13718 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013719 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13720 msm_routing_get_port_mixer,
13721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013722 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13723 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013724 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13725 msm_routing_get_port_mixer,
13726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013727 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013729 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13730 msm_routing_get_port_mixer,
13731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013732 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13733 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013734 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13735 msm_routing_get_port_mixer,
13736 msm_routing_put_port_mixer),
13737};
13738
13739static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013740 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13741 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013742 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13743 msm_routing_get_port_mixer,
13744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013745 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13746 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013747 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13748 msm_routing_get_port_mixer,
13749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013750 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13751 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013752 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13753 msm_routing_get_port_mixer,
13754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013755 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013757 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13758 msm_routing_get_port_mixer,
13759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013760 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13761 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013762 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13763 msm_routing_get_port_mixer,
13764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013765 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13766 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013767 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13768 msm_routing_get_port_mixer,
13769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013770 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13771 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013772 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13773 msm_routing_get_port_mixer,
13774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013775 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013777 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13778 msm_routing_get_port_mixer,
13779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013780 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013782 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13783 msm_routing_get_port_mixer,
13784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013785 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13786 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013787 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13788 msm_routing_get_port_mixer,
13789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013790 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013792 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13793 msm_routing_get_port_mixer,
13794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013795 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013797 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13798 msm_routing_get_port_mixer,
13799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013800 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13801 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013802 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13803 msm_routing_get_port_mixer,
13804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013805 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13806 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013807 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13808 msm_routing_get_port_mixer,
13809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013810 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013812 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13813 msm_routing_get_port_mixer,
13814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013815 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13816 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013817 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13818 msm_routing_get_port_mixer,
13819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013820 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13821 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013822 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13823 msm_routing_get_port_mixer,
13824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013825 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13826 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013827 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13828 msm_routing_get_port_mixer,
13829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013832 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13833 msm_routing_get_port_mixer,
13834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013835 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13836 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013837 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13838 msm_routing_get_port_mixer,
13839 msm_routing_put_port_mixer),
13840};
13841
13842static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013843 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13844 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013845 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13846 msm_routing_get_port_mixer,
13847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013848 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13849 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013850 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13851 msm_routing_get_port_mixer,
13852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013853 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13854 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013855 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13856 msm_routing_get_port_mixer,
13857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013858 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013860 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13861 msm_routing_get_port_mixer,
13862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013863 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13864 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013865 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13866 msm_routing_get_port_mixer,
13867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013868 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13869 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013870 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13871 msm_routing_get_port_mixer,
13872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013873 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13874 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013875 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13876 msm_routing_get_port_mixer,
13877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013878 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13879 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013880 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13881 msm_routing_get_port_mixer,
13882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013883 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13884 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013885 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13886 msm_routing_get_port_mixer,
13887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013888 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13889 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013890 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13891 msm_routing_get_port_mixer,
13892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013893 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13894 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013895 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13896 msm_routing_get_port_mixer,
13897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013898 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013900 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13901 msm_routing_get_port_mixer,
13902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013903 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013905 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13906 msm_routing_get_port_mixer,
13907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013908 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13909 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013910 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13911 msm_routing_get_port_mixer,
13912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013913 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13914 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013915 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13916 msm_routing_get_port_mixer,
13917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013918 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13919 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013920 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13921 msm_routing_get_port_mixer,
13922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013923 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013925 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13926 msm_routing_get_port_mixer,
13927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013928 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13929 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013930 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13931 msm_routing_get_port_mixer,
13932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013933 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13934 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013935 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13936 msm_routing_get_port_mixer,
13937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013938 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13939 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013940 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13941 msm_routing_get_port_mixer,
13942 msm_routing_put_port_mixer),
13943};
13944
13945static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013946 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13947 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013948 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13949 msm_routing_get_port_mixer,
13950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013951 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013953 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13954 msm_routing_get_port_mixer,
13955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013956 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13957 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013958 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13959 msm_routing_get_port_mixer,
13960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013961 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13962 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013963 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13964 msm_routing_get_port_mixer,
13965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013966 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13967 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013968 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13969 msm_routing_get_port_mixer,
13970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013971 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13972 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013973 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13974 msm_routing_get_port_mixer,
13975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013976 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13977 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013978 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13979 msm_routing_get_port_mixer,
13980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013981 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13982 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013983 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13984 msm_routing_get_port_mixer,
13985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013986 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13987 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013988 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13989 msm_routing_get_port_mixer,
13990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013991 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13992 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013993 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13994 msm_routing_get_port_mixer,
13995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013996 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13997 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013998 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13999 msm_routing_get_port_mixer,
14000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014001 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14002 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014003 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14004 msm_routing_get_port_mixer,
14005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014006 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14007 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014008 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14009 msm_routing_get_port_mixer,
14010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014011 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14012 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014013 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14014 msm_routing_get_port_mixer,
14015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014018 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14019 msm_routing_get_port_mixer,
14020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014021 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14022 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014023 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14024 msm_routing_get_port_mixer,
14025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014026 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14027 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014028 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14029 msm_routing_get_port_mixer,
14030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014031 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14032 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014033 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14034 msm_routing_get_port_mixer,
14035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014036 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014038 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14039 msm_routing_get_port_mixer,
14040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014041 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14042 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014043 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14044 msm_routing_get_port_mixer,
14045 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014046};
14047
14048static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014049 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14050 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014051 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014053 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14054 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014055 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014057 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14058 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014059 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014061 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14062 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014063 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014065 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14066 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014067 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014069 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14070 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014071 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014073 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14074 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014075 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14076 msm_routing_put_port_mixer),
14077};
14078
14079static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014080 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014082 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014084 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14085 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014086 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014088 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14089 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014090 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014092 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14093 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014094 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014096 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14097 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014098 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014100 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14101 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014102 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014104 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14105 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014106 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014108 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14109 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014110 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014112 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14113 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014114 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14115 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014116};
14117
14118static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014119 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014121 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14122 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014123 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014125 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14126 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014127 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014129 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14130 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014131 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014133 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14134 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014135 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014137 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14138 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014139 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14140 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014141 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14142 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014143 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014145 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14146 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014147 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14148 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014149 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14150 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053014151 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14152 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14153 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14154 msm_routing_put_listen_mixer),
14155 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14156 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14157 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
14158 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014159};
14160
14161static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014162 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
14163 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014164 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14165 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014166 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
14167 SND_SOC_NOPM,
14168 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014169 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14170 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014171 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
14172 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014173 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14174 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014175 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
14176 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014177 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14178 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014179 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
14180 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014181 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14182 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014183 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14184 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014185 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14186 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014187 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14188 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014189 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14190 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014191 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14192 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014193 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14194 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053014195 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14196 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14197 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14198 msm_routing_put_listen_mixer),
14199 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14200 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14201 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
14202 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014203};
14204
14205static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014206 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014208 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14209 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014210 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
14211 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014212 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14213 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014214 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014216 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14217 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014218 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014220 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14221 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014222 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014224 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14225 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014226 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014228 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14229 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014230 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014232 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14233 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014234 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014236 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14237 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053014238 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14240 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14241 msm_routing_put_listen_mixer),
14242 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14244 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
14245 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014246};
14247
14248static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014249 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
14250 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014251 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14252 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014253 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
14254 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014255 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14256 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014257 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
14258 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014259 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14260 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014261 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
14262 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014263 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14264 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014265 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
14266 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014267 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14268 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014269 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14270 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014271 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14272 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014273 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14274 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014275 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14276 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014277 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14278 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014279 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14280 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053014281 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14282 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14283 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14284 msm_routing_put_listen_mixer),
14285 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14286 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14287 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
14288 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014289};
14290
14291static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014292 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
14293 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014294 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14295 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014296 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
14297 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014298 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14299 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014300 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
14301 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014302 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14303 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014304 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
14305 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014306 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14307 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014308 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
14309 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014310 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14311 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014312 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14313 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014314 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14315 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014316 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014318 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14319 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014320 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14321 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014322 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14323 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053014324 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14325 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14326 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14327 msm_routing_put_listen_mixer),
14328 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14329 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14330 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
14331 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014332};
14333
14334static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014335 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
14336 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014337 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14338 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014339 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
14340 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014341 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14342 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014343 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
14344 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014345 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14346 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014347 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
14348 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014349 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14350 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014351 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
14352 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014353 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14354 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014355 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14356 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014357 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14358 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014359 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014361 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14362 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014363 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14364 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014365 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14366 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053014367 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14368 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14369 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14370 msm_routing_put_listen_mixer),
14371 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14372 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14373 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
14374 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014375};
14376
14377static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014378 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014380 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14381 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014382 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014384 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14385 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014386 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
14387 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014388 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14389 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014390 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
14391 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014392 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14393 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014394 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
14395 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014396 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14397 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014398 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14399 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014400 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14401 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014402 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14403 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014404 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14405 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014406 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14407 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014408 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14409 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053014410 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14411 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14412 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14413 msm_routing_put_listen_mixer),
14414 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14415 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14416 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
14417 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014418};
14419
14420static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014421 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
14422 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014423 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14424 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014425 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
14426 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014427 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14428 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014429 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014431 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14432 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014433 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014435 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14436 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014437 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
14438 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014439 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14440 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014441 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14442 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014443 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14444 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014445 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14446 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014447 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14448 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014449 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14450 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014451 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14452 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053014453 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14454 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14455 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14456 msm_routing_put_listen_mixer),
14457 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14459 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
14460 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014461};
14462
14463static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
14464 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14465 0, 1, 0, msm_routing_get_switch_mixer,
14466 msm_routing_put_switch_mixer);
14467
14468static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
14469 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14470 0, 1, 0, msm_routing_get_switch_mixer,
14471 msm_routing_put_switch_mixer);
14472
14473static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
14474 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14475 0, 1, 0, msm_routing_get_switch_mixer,
14476 msm_routing_put_switch_mixer);
14477
14478static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
14479 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14480 0, 1, 0, msm_routing_get_switch_mixer,
14481 msm_routing_put_switch_mixer);
14482
14483static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
14484 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14485 0, 1, 0, msm_routing_get_switch_mixer,
14486 msm_routing_put_switch_mixer);
14487
14488static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
14489 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14490 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
14491 msm_routing_put_fm_pcmrx_switch_mixer);
14492
14493static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
14494 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14495 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
14496 msm_routing_put_int0_mi2s_switch_mixer);
14497
14498static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
14499 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14500 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
14501 msm_routing_put_int4_mi2s_switch_mixer);
14502
14503static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
14504 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14505 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
14506 msm_routing_put_pri_mi2s_switch_mixer);
14507
14508static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
14509 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14510 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
14511 msm_routing_put_sec_mi2s_switch_mixer);
14512
14513static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
14514 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14515 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
14516 msm_routing_put_tert_mi2s_switch_mixer);
14517
14518static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
14519 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14520 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
14521 msm_routing_put_quat_mi2s_switch_mixer);
14522
Rohit Kumara5077932017-09-10 22:05:05 +053014523static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
14524 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14525 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
14526 msm_routing_put_quin_mi2s_switch_mixer);
14527
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014528static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
14529 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14530 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14531 msm_routing_put_hfp_switch_mixer);
14532
14533static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
14534 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14535 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14536 msm_routing_put_hfp_switch_mixer);
14537
14538static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
14539 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14540 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14541 msm_routing_put_hfp_switch_mixer);
14542
14543static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
14544 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14545 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14546 msm_routing_put_hfp_switch_mixer);
14547
14548static const struct snd_kcontrol_new usb_switch_mixer_controls =
14549 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14550 0, 1, 0, msm_routing_get_usb_switch_mixer,
14551 msm_routing_put_usb_switch_mixer);
14552
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080014553static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
14554 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14555 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
14556 msm_routing_a2dp_switch_mixer_put);
14557
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014558static const struct soc_enum lsm_port_enum =
14559 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
14560
14561static const char * const lsm_func_text[] = {
14562 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
14563};
14564static const struct soc_enum lsm_func_enum =
14565 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
14566
14567static const struct snd_kcontrol_new lsm_controls[] = {
14568 /* kcontrol of lsm_function */
14569 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14570 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14571 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14572 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14573 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14574 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14575 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14576 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14577 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14578 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14579 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14580 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14581 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14582 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14583 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14584 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14585 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14586 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14587 /* kcontrol of lsm_port */
14588 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
14589 msm_routing_lsm_port_get,
14590 msm_routing_lsm_port_put),
14591 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
14592 msm_routing_lsm_port_get,
14593 msm_routing_lsm_port_put),
14594 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
14595 msm_routing_lsm_port_get,
14596 msm_routing_lsm_port_put),
14597 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
14598 msm_routing_lsm_port_get,
14599 msm_routing_lsm_port_put),
14600 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
14601 msm_routing_lsm_port_get,
14602 msm_routing_lsm_port_put),
14603 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
14604 msm_routing_lsm_port_get,
14605 msm_routing_lsm_port_put),
14606 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
14607 msm_routing_lsm_port_get,
14608 msm_routing_lsm_port_put),
14609 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
14610 msm_routing_lsm_port_get,
14611 msm_routing_lsm_port_put),
14612};
14613
14614static const char * const aanc_slim_0_rx_text[] = {
14615 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
14616 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
14617};
14618
14619static const struct soc_enum aanc_slim_0_rx_enum =
14620 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
14621 aanc_slim_0_rx_text);
14622
14623static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
14624 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
14625 msm_routing_slim_0_rx_aanc_mux_get,
14626 msm_routing_slim_0_rx_aanc_mux_put)
14627};
14628
Sudheer Papothic07b37a2018-05-04 05:56:47 +053014629static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
14630 struct snd_ctl_elem_value *ucontrol)
14631{
14632 ucontrol->value.integer.value[0] = aanc_level;
14633
14634 return 0;
14635}
14636
14637static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
14638 struct snd_ctl_elem_value *ucontrol)
14639{
14640 int ret = 0;
14641
14642 mutex_lock(&routing_lock);
14643 aanc_level = ucontrol->value.integer.value[0];
14644 pr_debug("%s: value: %ld\n",
14645 __func__, ucontrol->value.integer.value[0]);
14646 ret = afe_set_aanc_noise_level(aanc_level);
14647 mutex_unlock(&routing_lock);
14648
14649 return ret;
14650}
14651
14652static const struct snd_kcontrol_new aanc_noise_level[] = {
14653 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
14654 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
14655};
14656
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014657static int msm_routing_get_stereo_to_custom_stereo_control(
14658 struct snd_kcontrol *kcontrol,
14659 struct snd_ctl_elem_value *ucontrol)
14660{
14661 ucontrol->value.integer.value[0] = is_custom_stereo_on;
14662 return 0;
14663}
14664
14665static int msm_routing_put_stereo_to_custom_stereo_control(
14666 struct snd_kcontrol *kcontrol,
14667 struct snd_ctl_elem_value *ucontrol)
14668{
14669 int flag = 0, i = 0, rc = 0, idx = 0;
14670 int be_index = 0, port_id, topo_id;
14671 unsigned int session_id = 0;
14672 uint16_t op_FL_ip_FL_weight = 0;
14673 uint16_t op_FL_ip_FR_weight = 0;
14674 uint16_t op_FR_ip_FL_weight = 0;
14675 uint16_t op_FR_ip_FR_weight = 0;
14676
14677 flag = ucontrol->value.integer.value[0];
14678 pr_debug("%s E flag %d\n", __func__, flag);
14679
14680 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
14681 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
14682 __func__, is_custom_stereo_on, flag);
14683 return 0;
14684 }
14685 is_custom_stereo_on = flag ? true : false;
14686 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
14687 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
14688 port_id = msm_bedais[be_index].port_id;
14689 if (!msm_bedais[be_index].active)
14690 continue;
14691 if ((port_id != SLIMBUS_0_RX) &&
14692 (port_id != RT_PROXY_PORT_001_RX) &&
14693 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
14694 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
14695 continue;
14696
14697 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
14698 MSM_FRONTEND_DAI_MM_SIZE) {
14699 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
14700 LEGACY_PCM_MODE)
14701 goto skip_send_custom_stereo;
14702 session_id =
14703 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
14704 if (is_custom_stereo_on) {
14705 op_FL_ip_FL_weight =
14706 Q14_GAIN_ZERO_POINT_FIVE;
14707 op_FL_ip_FR_weight =
14708 Q14_GAIN_ZERO_POINT_FIVE;
14709 op_FR_ip_FL_weight =
14710 Q14_GAIN_ZERO_POINT_FIVE;
14711 op_FR_ip_FR_weight =
14712 Q14_GAIN_ZERO_POINT_FIVE;
14713 } else {
14714 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
14715 op_FL_ip_FR_weight = 0;
14716 op_FR_ip_FL_weight = 0;
14717 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
14718 }
14719 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
14720 unsigned long copp =
14721 session_copp_map[i]
14722 [SESSION_TYPE_RX][be_index];
14723 if (!test_bit(idx, &copp))
14724 goto skip_send_custom_stereo;
14725 topo_id = adm_get_topology_for_port_copp_idx(
14726 msm_bedais[be_index].port_id, idx);
14727 if (topo_id < 0)
14728 pr_debug("%s:Err:custom stereo topo %d",
14729 __func__, topo_id);
14730 pr_debug("idx %d\n", idx);
14731 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
14732 rc = msm_ds2_dap_set_custom_stereo_onoff
14733 (msm_bedais[be_index].port_id,
14734 idx, is_custom_stereo_on);
14735 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
14736 rc = dolby_dap_set_custom_stereo_onoff(
14737 msm_bedais[be_index].port_id,
14738 idx, is_custom_stereo_on);
14739 else
14740 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
14741 (msm_bedais[be_index].port_id,
14742 idx, session_id,
14743 op_FL_ip_FL_weight,
14744 op_FL_ip_FR_weight,
14745 op_FR_ip_FL_weight,
14746 op_FR_ip_FR_weight);
14747 if (rc < 0)
14748skip_send_custom_stereo:
14749 pr_err("%s: err setting custom stereo\n",
14750 __func__);
14751 }
14752
14753 }
14754 }
14755 return 0;
14756}
14757
14758static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
14759 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
14760 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
14761 msm_routing_put_stereo_to_custom_stereo_control),
14762};
14763
14764static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
14765 struct snd_ctl_elem_value *ucontrol)
14766{
14767 return 0;
14768}
14769
14770static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
14771 struct snd_ctl_elem_value *ucontrol)
14772{
14773 int i = 0, j;
14774 int num_app_types = ucontrol->value.integer.value[i++];
14775
14776 pr_debug("%s\n", __func__);
14777
14778 memset(app_type_cfg, 0, MAX_APP_TYPES*
14779 sizeof(struct msm_pcm_routing_app_type_data));
14780 if (num_app_types > MAX_APP_TYPES) {
14781 pr_err("%s: number of app types exceed the max supported\n",
14782 __func__);
14783 return -EINVAL;
14784 }
14785 for (j = 0; j < num_app_types; j++) {
14786 app_type_cfg[j].app_type =
14787 ucontrol->value.integer.value[i++];
14788 app_type_cfg[j].sample_rate =
14789 ucontrol->value.integer.value[i++];
14790 app_type_cfg[j].bit_width =
14791 ucontrol->value.integer.value[i++];
14792 }
14793
14794 return 0;
14795}
14796
14797static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
14798 struct snd_ctl_elem_value *ucontrol)
14799{
14800 int j, fe_id, be_id, port_type;
14801 int ret = 0;
14802 unsigned long copp;
14803 struct msm_pcm_routing_bdai_data *bedai;
14804 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
14805 SESSION_TYPE_RX;
14806 int app_type = ucontrol->value.integer.value[1];
14807 int gain = (ucontrol->value.integer.value[2] +
14808 ucontrol->value.integer.value[3])/2;
14809
14810 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
14811 MSM_AFE_PORT_TYPE_TX;
14812
14813 mutex_lock(&routing_lock);
14814 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
14815 if (is_be_dai_extproc(be_id))
14816 continue;
14817
14818 bedai = &msm_bedais[be_id];
14819 if (afe_get_port_type(bedai->port_id) != port_type)
14820 continue;
14821
14822 if (!bedai->active)
14823 continue;
14824
14825 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
14826 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
14827 continue;
14828
14829 if (app_type !=
14830 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
14831 continue;
14832
14833 copp = session_copp_map[fe_id][dir][be_id];
14834 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
14835 if (!test_bit(j, &copp))
14836 continue;
14837 ret |= adm_set_volume(bedai->port_id, j, gain);
14838 }
14839 }
14840 }
14841 mutex_unlock(&routing_lock);
14842 return ret ? -EINVAL : 0;
14843}
14844
14845static const struct snd_kcontrol_new app_type_cfg_controls[] = {
14846 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
14847 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
14848 msm_routing_put_app_type_cfg_control),
14849 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
14850 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
14851};
14852
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070014853static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
14854 struct snd_ctl_elem_value *ucontrol)
14855{
14856 int copp_idx, fe_id, be_id, port_type;
14857 int ret = 0;
14858 unsigned long copp;
14859 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080014860 u8 *packed_params = NULL;
14861 struct param_hdr_v3 param_hdr;
14862 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
14863 sizeof(uint32_t));
14864
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070014865 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
14866 SESSION_TYPE_RX;
14867 int app_type = ucontrol->value.integer.value[1];
14868 int module_id = ucontrol->value.integer.value[2];
14869 int instance_id = ucontrol->value.integer.value[3];
14870 int param_id = ucontrol->value.integer.value[4];
14871 int param_value = ucontrol->value.integer.value[5];
14872
14873 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
14874 MSM_AFE_PORT_TYPE_TX;
14875 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
14876 __func__, app_type, module_id,
14877 instance_id, param_id, param_value);
14878
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080014879 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
14880 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070014881 return -ENOMEM;
14882
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080014883 memset(&param_hdr, 0, sizeof(param_hdr));
14884 param_hdr.module_id = module_id;
14885 param_hdr.instance_id = instance_id;
14886 param_hdr.param_id = param_id;
14887 param_hdr.param_size = sizeof(uint32_t);
14888
14889 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070014890
14891 mutex_lock(&routing_lock);
14892 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
14893 if (is_be_dai_extproc(be_id))
14894 continue;
14895
14896 bedai = &msm_bedais[be_id];
14897 if (afe_get_port_type(bedai->port_id) != port_type)
14898 continue;
14899
14900 if (!bedai->active)
14901 continue;
14902
14903 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
14904 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
14905 continue;
14906
14907 if (app_type !=
14908 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
14909 continue;
14910
14911 copp = session_copp_map[fe_id][dir][be_id];
14912 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
14913 copp_idx++) {
14914 if (!test_bit(copp_idx, &copp))
14915 continue;
14916
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080014917 ret = q6common_pack_pp_params(packed_params,
14918 &param_hdr,
14919 (u8 *) &param_value,
14920 &packed_param_size);
14921 if (ret) {
14922 pr_err("%s: Failed to pack params, error %d\n",
14923 __func__, ret);
14924 goto done;
14925 }
14926
14927 ret = adm_set_pp_params(bedai->port_id,
14928 copp_idx, NULL,
14929 packed_params,
14930 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070014931 if (ret) {
14932 pr_err("%s: Setting param failed with err=%d\n",
14933 __func__, ret);
14934 ret = -EINVAL;
14935 goto done;
14936 }
14937 }
14938 }
14939 }
14940done:
14941 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080014942 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070014943 return ret;
14944}
14945
14946static const struct snd_kcontrol_new module_cfg_controls[] = {
14947 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
14948 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
14949};
14950
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014951static int msm_routing_get_lsm_app_type_cfg_control(
14952 struct snd_kcontrol *kcontrol,
14953 struct snd_ctl_elem_value *ucontrol)
14954{
14955 return 0;
14956}
14957
14958static int msm_routing_put_lsm_app_type_cfg_control(
14959 struct snd_kcontrol *kcontrol,
14960 struct snd_ctl_elem_value *ucontrol)
14961{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070014962 int shift = ((struct soc_multi_mixer_control *)
14963 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014964 int i = 0, j;
14965 int num_app_types = ucontrol->value.integer.value[i++];
14966
14967 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070014968 sizeof(struct msm_pcm_routing_app_type_data));
14969
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014970 if (num_app_types > MAX_APP_TYPES) {
14971 pr_err("%s: number of app types exceed the max supported\n",
14972 __func__);
14973 return -EINVAL;
14974 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070014975
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014976 for (j = 0; j < num_app_types; j++) {
14977 lsm_app_type_cfg[j].app_type =
14978 ucontrol->value.integer.value[i++];
14979 lsm_app_type_cfg[j].sample_rate =
14980 ucontrol->value.integer.value[i++];
14981 lsm_app_type_cfg[j].bit_width =
14982 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070014983 /* Shift of 1 indicates this is V2 mixer control */
14984 if (shift == 1)
14985 lsm_app_type_cfg[j].num_out_channels =
14986 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014987 }
14988
14989 return 0;
14990}
14991
14992static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
14993 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
14994 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
14995 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070014996 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
14997 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
14998 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014999};
15000
15001static int msm_routing_get_use_ds1_or_ds2_control(
15002 struct snd_kcontrol *kcontrol,
15003 struct snd_ctl_elem_value *ucontrol)
15004{
15005 ucontrol->value.integer.value[0] = is_ds2_on;
15006 return 0;
15007}
15008
15009static int msm_routing_put_use_ds1_or_ds2_control(
15010 struct snd_kcontrol *kcontrol,
15011 struct snd_ctl_elem_value *ucontrol)
15012{
15013 is_ds2_on = ucontrol->value.integer.value[0];
15014 return 0;
15015}
15016
15017static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
15018 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
15019 1, 0, msm_routing_get_use_ds1_or_ds2_control,
15020 msm_routing_put_use_ds1_or_ds2_control),
15021};
15022
15023int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
15024 struct snd_ctl_elem_value *ucontrol) {
15025 int rc = 0;
15026 int be_idx = 0;
15027 char *param_value;
15028 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080015029 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
15030 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015031
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080015032 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015033 if (!param_value)
15034 return -ENOMEM;
15035
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080015036 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015037 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
15038 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
15039 break;
15040 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080015041 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
15042 param_hdr.instance_id = INSTANCE_ID_0;
15043 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
15044 param_hdr.param_size = param_size;
15045 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
15046 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015047 if (rc) {
15048 pr_err("%s: get parameters failed:%d\n", __func__, rc);
15049 kfree(param_value);
15050 return -EINVAL;
15051 }
15052 update_param_value = (int *)param_value;
15053 ucontrol->value.integer.value[0] = update_param_value[0];
15054
15055 pr_debug("%s: FROM DSP value[0] 0x%x\n",
15056 __func__, update_param_value[0]);
15057 }
15058 kfree(param_value);
15059 return 0;
15060}
15061
15062static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
15063 struct snd_ctl_elem_value *ucontrol)
15064{
15065 voc_session_id = ucontrol->value.integer.value[0];
15066
15067 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
15068
15069 return 0;
15070}
15071
15072static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
15073 struct snd_ctl_elem_value *ucontrol)
15074{
15075 ucontrol->value.integer.value[0] = voc_session_id;
15076
15077 return 0;
15078}
15079
15080static struct snd_kcontrol_new msm_voc_session_controls[] = {
15081 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
15082 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
15083 msm_voc_session_id_put),
15084};
15085
15086static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
15087 struct snd_ctl_elem_info *uinfo)
15088{
15089 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
15090 uinfo->count = sizeof(struct sound_focus_param);
15091
15092 return 0;
15093}
15094
15095static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
15096 struct snd_ctl_elem_value *ucontrol)
15097{
15098 int ret = 0;
15099 struct sound_focus_param soundFocusData;
15100
15101 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
15102 sizeof(struct sound_focus_param));
15103 ret = voc_set_sound_focus(soundFocusData);
15104 if (ret) {
15105 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
15106 __func__, ret);
15107
15108 ret = -EINVAL;
15109 }
15110
15111 return ret;
15112}
15113
15114static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
15115 struct snd_ctl_elem_value *ucontrol)
15116{
15117 int ret = 0;
15118 struct sound_focus_param soundFocusData;
15119
15120 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
15121
15122 ret = voc_get_sound_focus(&soundFocusData);
15123 if (ret) {
15124 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
15125 __func__, ret);
15126
15127 ret = -EINVAL;
15128 goto done;
15129 }
15130 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
15131 sizeof(struct sound_focus_param));
15132
15133done:
15134 return ret;
15135}
15136
15137static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
15138 struct snd_ctl_elem_info *uinfo)
15139{
15140 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
15141 uinfo->count = sizeof(struct source_tracking_param);
15142
15143 return 0;
15144}
15145
15146static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
15147 struct snd_ctl_elem_value *ucontrol)
15148{
Meng Wang92edfde2018-04-24 12:18:37 +080015149 int ret = 0;
15150 struct source_tracking_param sourceTrackingData;
15151
15152 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
15153
15154 ret = voc_get_source_tracking(&sourceTrackingData);
15155 if (ret) {
15156 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
15157 __func__, ret);
15158
15159 ret = -EINVAL;
15160 goto done;
15161 }
15162 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
15163 sizeof(struct source_tracking_param));
15164
15165done:
15166 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015167}
15168
15169static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
15170 int *copp_idx)
15171{
15172 int i, idx, be_idx;
15173 int ret = 0;
15174 unsigned long copp;
15175
15176 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
15177
15178 ret = q6audio_validate_port(port_id);
15179 if (ret < 0) {
15180 pr_err("%s: port validation failed id 0x%x ret %d\n",
15181 __func__, port_id, ret);
15182
15183 ret = -EINVAL;
15184 goto done;
15185 }
15186
15187 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
15188 if (msm_bedais[be_idx].port_id == port_id)
15189 break;
15190 }
15191 if (be_idx >= MSM_BACKEND_DAI_MAX) {
15192 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
15193
15194 ret = -EINVAL;
15195 goto done;
15196 }
15197
15198 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
15199 MSM_FRONTEND_DAI_MM_SIZE) {
15200 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
15201 copp = session_copp_map[i]
15202 [session_type][be_idx];
15203 if (test_bit(idx, &copp))
15204 break;
15205 }
15206 if (idx >= MAX_COPPS_PER_PORT)
15207 continue;
15208 else
15209 break;
15210 }
15211 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
15212 pr_err("%s: Invalid FE, exiting\n", __func__);
15213
15214 ret = -EINVAL;
15215 goto done;
15216 }
15217 *copp_idx = idx;
15218 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
15219
15220done:
15221 return ret;
15222}
15223
15224static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
15225 const char *prefix, int *port_id)
15226{
15227 int ret = 0;
15228
15229 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
15230
15231 /*
15232 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
15233 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
15234 * and compare the string with the backend name to derive the port id.
15235 */
15236 if (!strcmp(kcontrol->id.name + strlen(prefix),
15237 "SLIMBUS_0")) {
15238 *port_id = SLIMBUS_0_TX;
15239 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
15240 "TERT_MI2S")) {
15241 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
15242 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
15243 "INT3_MI2S")) {
15244 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
15245 } else {
15246 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
15247 __func__, kcontrol->id.name);
15248
15249 ret = -EINVAL;
15250 goto done;
15251 }
15252 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
15253 __func__, kcontrol->id.name, *port_id);
15254
15255done:
15256 return ret;
15257}
15258
15259static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
15260 struct snd_ctl_elem_value *ucontrol)
15261{
15262 int ret = 0;
15263 struct sound_focus_param soundFocusData;
15264 int port_id, copp_idx;
15265
15266 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
15267 "Sound Focus Audio Tx ", &port_id);
15268 if (ret != 0) {
15269 pr_err("%s: Error in deriving port id, err=%d\n",
15270 __func__, ret);
15271
15272 ret = -EINVAL;
15273 goto done;
15274 }
15275
15276 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
15277 &copp_idx);
15278 if (ret) {
15279 pr_err("%s: Could not get copp idx for port_id=%d\n",
15280 __func__, port_id);
15281
15282 ret = -EINVAL;
15283 goto done;
15284 }
15285
15286 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
15287 sizeof(struct sound_focus_param));
15288
15289 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
15290 if (ret) {
15291 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
15292 __func__, ret);
15293
15294 ret = -EINVAL;
15295 goto done;
15296 }
15297
15298done:
15299 return ret;
15300}
15301
15302static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
15303 struct snd_ctl_elem_value *ucontrol)
15304{
15305 int ret = 0;
15306 struct sound_focus_param soundFocusData;
15307 int port_id, copp_idx;
15308
15309 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
15310 "Sound Focus Audio Tx ", &port_id);
15311 if (ret) {
15312 pr_err("%s: Error in deriving port id, err=%d\n",
15313 __func__, ret);
15314
15315 ret = -EINVAL;
15316 goto done;
15317 }
15318
15319 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
15320 &copp_idx);
15321 if (ret) {
15322 pr_err("%s: Could not get copp idx for port_id=%d\n",
15323 __func__, port_id);
15324
15325 ret = -EINVAL;
15326 goto done;
15327 }
15328
15329 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
15330 if (ret) {
15331 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
15332 __func__, ret);
15333
15334 ret = -EINVAL;
15335 goto done;
15336 }
15337
15338 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
15339 sizeof(struct sound_focus_param));
15340
15341done:
15342 return ret;
15343}
15344
15345static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
15346 struct snd_ctl_elem_value *ucontrol)
15347{
15348 int ret = 0;
15349 struct source_tracking_param sourceTrackingData;
15350 int port_id, copp_idx;
15351
15352 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
15353 "Source Tracking Audio Tx ", &port_id);
15354 if (ret) {
15355 pr_err("%s: Error in deriving port id, err=%d\n",
15356 __func__, ret);
15357
15358 ret = -EINVAL;
15359 goto done;
15360 }
15361
15362 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
15363 &copp_idx);
15364 if (ret) {
15365 pr_err("%s: Could not get copp idx for port_id=%d\n",
15366 __func__, port_id);
15367
15368 ret = -EINVAL;
15369 goto done;
15370 }
15371
15372 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
15373 if (ret) {
15374 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
15375 __func__, ret);
15376
15377 ret = -EINVAL;
15378 goto done;
15379 }
15380
15381 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
15382 sizeof(struct source_tracking_param));
15383
15384done:
15385 return ret;
15386}
15387
15388static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
15389 {
15390 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
15391 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15392 .name = "Sound Focus Voice Tx SLIMBUS_0",
15393 .info = msm_sound_focus_info,
15394 .get = msm_voice_sound_focus_get,
15395 .put = msm_voice_sound_focus_put,
15396 },
15397 {
15398 .access = SNDRV_CTL_ELEM_ACCESS_READ,
15399 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15400 .name = "Source Tracking Voice Tx SLIMBUS_0",
15401 .info = msm_source_tracking_info,
15402 .get = msm_voice_source_tracking_get,
15403 },
15404 {
15405 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
15406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15407 .name = "Sound Focus Audio Tx SLIMBUS_0",
15408 .info = msm_sound_focus_info,
15409 .get = msm_audio_sound_focus_get,
15410 .put = msm_audio_sound_focus_put,
15411 },
15412 {
15413 .access = SNDRV_CTL_ELEM_ACCESS_READ,
15414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15415 .name = "Source Tracking Audio Tx SLIMBUS_0",
15416 .info = msm_source_tracking_info,
15417 .get = msm_audio_source_tracking_get,
15418 },
15419 {
15420 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
15421 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15422 .name = "Sound Focus Voice Tx TERT_MI2S",
15423 .info = msm_sound_focus_info,
15424 .get = msm_voice_sound_focus_get,
15425 .put = msm_voice_sound_focus_put,
15426 },
15427 {
15428 .access = SNDRV_CTL_ELEM_ACCESS_READ,
15429 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15430 .name = "Source Tracking Voice Tx TERT_MI2S",
15431 .info = msm_source_tracking_info,
15432 .get = msm_voice_source_tracking_get,
15433 },
15434 {
15435 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
15436 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15437 .name = "Sound Focus Audio Tx TERT_MI2S",
15438 .info = msm_sound_focus_info,
15439 .get = msm_audio_sound_focus_get,
15440 .put = msm_audio_sound_focus_put,
15441 },
15442 {
15443 .access = SNDRV_CTL_ELEM_ACCESS_READ,
15444 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15445 .name = "Source Tracking Audio Tx TERT_MI2S",
15446 .info = msm_source_tracking_info,
15447 .get = msm_audio_source_tracking_get,
15448 },
15449 {
15450 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
15451 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15452 .name = "Sound Focus Voice Tx INT3_MI2S",
15453 .info = msm_sound_focus_info,
15454 .get = msm_voice_sound_focus_get,
15455 .put = msm_voice_sound_focus_put,
15456 },
15457 {
15458 .access = SNDRV_CTL_ELEM_ACCESS_READ,
15459 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15460 .name = "Source Tracking Voice Tx INT3_MI2S",
15461 .info = msm_source_tracking_info,
15462 .get = msm_voice_source_tracking_get,
15463 },
15464 {
15465 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
15466 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15467 .name = "Sound Focus Audio Tx INT3_MI2S",
15468 .info = msm_sound_focus_info,
15469 .get = msm_audio_sound_focus_get,
15470 .put = msm_audio_sound_focus_put,
15471 },
15472 {
15473 .access = SNDRV_CTL_ELEM_ACCESS_READ,
15474 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
15475 .name = "Source Tracking Audio Tx INT3_MI2S",
15476 .info = msm_source_tracking_info,
15477 .get = msm_audio_source_tracking_get,
15478 },
15479};
15480
15481static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
15482 struct snd_ctl_elem_value *ucontrol)
15483{
15484 int ret = 0;
15485 int item;
15486 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
15487
15488 pr_debug("%s item is %d\n", __func__,
15489 ucontrol->value.enumerated.item[0]);
15490 mutex_lock(&routing_lock);
15491 item = ucontrol->value.enumerated.item[0];
15492 if (item < e->items) {
15493 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
15494 __func__, e->shift_l, e->values[item]);
15495 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
15496 e->values[item] < MSM_BACKEND_DAI_MAX)
15497 /* Enable feedback TX path */
15498 ret = afe_spk_prot_feed_back_cfg(
15499 msm_bedais[e->values[item]].port_id,
15500 msm_bedais[e->shift_l].port_id, 1, 0, 1);
15501 else {
15502 pr_debug("%s values are out of range item %d\n",
15503 __func__, e->values[item]);
15504 /* Disable feedback TX path */
15505 if (e->values[item] == MSM_BACKEND_DAI_MAX)
15506 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
15507 else
15508 ret = -EINVAL;
15509 }
15510 } else {
15511 pr_err("%s item value is out of range item\n", __func__);
15512 ret = -EINVAL;
15513 }
15514 mutex_unlock(&routing_lock);
15515 return ret;
15516}
15517
15518static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
15519 struct snd_ctl_elem_value *ucontrol)
15520{
15521 int ret = 0;
15522 int item;
15523 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
15524
15525 pr_debug("%s item is %d\n", __func__,
15526 ucontrol->value.enumerated.item[0]);
15527 mutex_lock(&routing_lock);
15528 item = ucontrol->value.enumerated.item[0];
15529 if (item < e->items) {
15530 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
15531 __func__, e->shift_l, e->values[item]);
15532 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
15533 e->values[item] < MSM_BACKEND_DAI_MAX)
15534 /* Enable feedback TX path */
15535 ret = afe_spk_prot_feed_back_cfg(
15536 msm_bedais[e->values[item]].port_id,
15537 msm_bedais[e->shift_l].port_id,
15538 1, 1, 1);
15539 else {
15540 pr_debug("%s values are out of range item %d\n",
15541 __func__, e->values[item]);
15542 /* Disable feedback TX path */
15543 if (e->values[item] == MSM_BACKEND_DAI_MAX)
15544 ret = afe_spk_prot_feed_back_cfg(0,
15545 0, 0, 0, 0);
15546 else
15547 ret = -EINVAL;
15548 }
15549 } else {
15550 pr_err("%s item value is out of range item\n", __func__);
15551 ret = -EINVAL;
15552 }
15553 mutex_unlock(&routing_lock);
15554 return ret;
15555}
15556
15557static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
15558 struct snd_ctl_elem_value *ucontrol)
15559{
15560 pr_debug("%s\n", __func__);
15561 return 0;
15562}
15563
15564static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
15565 struct snd_ctl_elem_value *ucontrol)
15566{
15567 pr_debug("%s\n", __func__);
15568 ucontrol->value.enumerated.item[0] = 0;
15569 return 0;
15570}
15571
15572static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
15573 "ZERO", "SLIM4_TX"
15574};
15575
15576static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
15577 "ZERO", "SLIM4_TX"
15578};
15579
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015580static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
15581 "ZERO", "WSA_CDC_DMA_TX_0"
15582};
15583
15584static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
15585 "ZERO", "WSA_CDC_DMA_TX_0"
15586};
15587
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015588static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
15589 "ZERO", "SENARY_TX"
15590};
15591
15592static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
15593 "ZERO", "INT5_MI2S_TX"
15594};
15595
15596static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
15597 "ZERO", "INT5_MI2S_TX"
15598};
15599
15600static const int const slim0_rx_vi_fb_tx_lch_value[] = {
15601 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
15602};
15603
15604static const int const slim0_rx_vi_fb_tx_rch_value[] = {
15605 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
15606};
15607
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015608static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
15609 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
15610};
15611
15612static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
15613 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
15614};
15615
15616
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015617static const int const mi2s_rx_vi_fb_tx_value[] = {
15618 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
15619};
15620
15621static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
15622 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
15623};
15624
15625static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
15626 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
15627};
15628
15629static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
15630 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
15631 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
15632 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
15633
15634static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
15635 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
15636 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
15637 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
15638
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015639static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
15640 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
15641 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
15642 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
15643
15644static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
15645 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
15646 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
15647 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
15648
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015649static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
15650 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
15651 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
15652 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
15653
15654static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
15655 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
15656 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
15657 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
15658 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
15659
15660static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
15661 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
15662 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
15663 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
15664 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
15665
15666static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
15667 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
15668 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
15669 spkr_prot_put_vi_lch_port);
15670
15671static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
15672 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
15673 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
15674 spkr_prot_put_vi_rch_port);
15675
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015676static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
15677 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
15678 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
15679 spkr_prot_put_vi_lch_port);
15680
15681static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
15682 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
15683 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
15684 spkr_prot_put_vi_rch_port);
15685
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015686static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
15687 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
15688 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
15689 spkr_prot_put_vi_lch_port);
15690
15691static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
15692 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
15693 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
15694 spkr_prot_put_vi_lch_port);
15695
15696static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
15697 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
15698 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
15699 spkr_prot_put_vi_rch_port);
15700
15701static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
15702 /* Frontend AIF */
15703 /* Widget name equals to Front-End DAI name<Need confirmation>,
15704 * Stream name must contains substring of front-end dai name
15705 */
15706 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
15707 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
15708 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
15709 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
15710 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
15711 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
15712 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
15713 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
15714 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
15715 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
15716 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
15717 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
15718 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
15719 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
15720 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
15721 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
15722 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
15723 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
15724 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
15725 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
15726 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
15727 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
15728 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
15729 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
15730 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
15731 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053015732 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053015733 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015734 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
15735 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
15736 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
15737 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080015738 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
15739 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015740 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
15741 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
15742 "VoiceMMode1 Playback", 0, 0, 0, 0),
15743 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
15744 "VoiceMMode1 Capture", 0, 0, 0, 0),
15745 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
15746 "VoiceMMode2 Playback", 0, 0, 0, 0),
15747 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
15748 "VoiceMMode2 Capture", 0, 0, 0, 0),
15749 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
15750 0, 0, 0, 0),
15751 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
15752 0, 0, 0, 0),
15753 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
15754 0, 0, 0, 0),
15755 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
15756 0, 0, 0, 0),
15757 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
15758 0, 0, 0, 0),
15759 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
15760 0, 0, 0, 0),
15761 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
15762 0, 0, 0, 0),
15763 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
15764 0, 0, 0, 0),
15765 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
15766 0, 0, 0, 0),
15767 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
15768 0, 0, 0, 0),
15769 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
15770 0, 0, 0, 0),
15771 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
15772 0, 0, 0, 0),
15773 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
15774 0, 0, 0, 0),
15775 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
15776 0, 0, 0, 0),
15777 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
15778 0, 0, 0, 0),
15779 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
15780 0, 0, 0, 0),
15781 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
15782 0, 0, 0, 0),
15783 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
15784 0, 0, 0, 0),
15785 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
15786 0, 0, 0, 0),
15787 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
15788 0, 0, 0, 0),
15789 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
15790 0, 0, 0, 0),
15791 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
15792 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
15793 0, 0, 0, 0),
15794 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
15795 "INT0 MI2S_RX Hostless Playback",
15796 0, 0, 0, 0),
15797 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
15798 "INT4 MI2S_RX Hostless Playback",
15799 0, 0, 0, 0),
15800 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
15801 "Primary MI2S_RX Hostless Playback",
15802 0, 0, 0, 0),
15803 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
15804 "Secondary MI2S_RX Hostless Playback",
15805 0, 0, 0, 0),
15806 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
15807 "Tertiary MI2S_RX Hostless Playback",
15808 0, 0, 0, 0),
15809 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
15810 "Quaternary MI2S_RX Hostless Playback",
15811 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015812 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
15813 "Quinary MI2S_RX Hostless Playback",
15814 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015815
15816 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
15817 0, 0, 0, 0),
15818 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
15819 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015820 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
15821 0, 0, 0, 0),
15822 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
15823 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015824 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
15825 0, 0, 0, 0),
15826 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
15827 "INT3 MI2S_TX Hostless Capture",
15828 0, 0, 0, 0),
15829 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
15830 "Tertiary MI2S_TX Hostless Capture",
15831 0, 0, 0, 0),
15832 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
15833 "Secondary MI2S_TX Hostless Capture",
15834 0, 0, 0, 0),
15835 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
15836 "Primary MI2S_TX Hostless Capture",
15837 0, 0, 0, 0),
15838 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
15839 0, 0, 0, 0),
15840 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
15841 0, 0, 0, 0),
15842 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
15843 "Quaternary MI2S_TX Hostless Capture",
15844 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015845 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
15846 "Quinary MI2S_TX Hostless Capture",
15847 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015848
15849 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
15850 "Primary TDM0 Hostless Playback",
15851 0, 0, 0, 0),
15852 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
15853 "Primary TDM0 Hostless Capture",
15854 0, 0, 0, 0),
15855 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
15856 "Primary TDM1 Hostless Playback",
15857 0, 0, 0, 0),
15858 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
15859 "Primary TDM1 Hostless Capture",
15860 0, 0, 0, 0),
15861 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
15862 "Primary TDM2 Hostless Playback",
15863 0, 0, 0, 0),
15864 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
15865 "Primary TDM2 Hostless Capture",
15866 0, 0, 0, 0),
15867 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
15868 "Primary TDM3 Hostless Playback",
15869 0, 0, 0, 0),
15870 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
15871 "Primary TDM3 Hostless Capture",
15872 0, 0, 0, 0),
15873 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
15874 "Primary TDM4 Hostless Playback",
15875 0, 0, 0, 0),
15876 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
15877 "Primary TDM4 Hostless Capture",
15878 0, 0, 0, 0),
15879 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
15880 "Primary TDM5 Hostless Playback",
15881 0, 0, 0, 0),
15882 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
15883 "Primary TDM5 Hostless Capture",
15884 0, 0, 0, 0),
15885 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
15886 "Primary TDM6 Hostless Playback",
15887 0, 0, 0, 0),
15888 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
15889 "Primary TDM6 Hostless Capture",
15890 0, 0, 0, 0),
15891 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
15892 "Primary TDM7 Hostless Playback",
15893 0, 0, 0, 0),
15894 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
15895 "Primary TDM7 Hostless Capture",
15896 0, 0, 0, 0),
15897 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
15898 "Secondary TDM0 Hostless Playback",
15899 0, 0, 0, 0),
15900 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
15901 "Secondary TDM0 Hostless Capture",
15902 0, 0, 0, 0),
15903 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
15904 "Secondary TDM1 Hostless Playback",
15905 0, 0, 0, 0),
15906 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
15907 "Secondary TDM1 Hostless Capture",
15908 0, 0, 0, 0),
15909 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
15910 "Secondary TDM2 Hostless Playback",
15911 0, 0, 0, 0),
15912 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
15913 "Secondary TDM2 Hostless Capture",
15914 0, 0, 0, 0),
15915 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
15916 "Secondary TDM3 Hostless Playback",
15917 0, 0, 0, 0),
15918 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
15919 "Secondary TDM3 Hostless Capture",
15920 0, 0, 0, 0),
15921 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
15922 "Secondary TDM4 Hostless Playback",
15923 0, 0, 0, 0),
15924 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
15925 "Secondary TDM4 Hostless Capture",
15926 0, 0, 0, 0),
15927 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
15928 "Secondary TDM5 Hostless Playback",
15929 0, 0, 0, 0),
15930 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
15931 "Secondary TDM5 Hostless Capture",
15932 0, 0, 0, 0),
15933 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
15934 "Secondary TDM6 Hostless Playback",
15935 0, 0, 0, 0),
15936 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
15937 "Secondary TDM6 Hostless Capture",
15938 0, 0, 0, 0),
15939 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
15940 "Secondary TDM7 Hostless Playback",
15941 0, 0, 0, 0),
15942 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
15943 "Secondary TDM7 Hostless Capture",
15944 0, 0, 0, 0),
15945 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
15946 "Tertiary TDM0 Hostless Playback",
15947 0, 0, 0, 0),
15948 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
15949 "Tertiary TDM0 Hostless Capture",
15950 0, 0, 0, 0),
15951 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
15952 "Tertiary TDM1 Hostless Playback",
15953 0, 0, 0, 0),
15954 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
15955 "Tertiary TDM1 Hostless Capture",
15956 0, 0, 0, 0),
15957 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
15958 "Tertiary TDM2 Hostless Playback",
15959 0, 0, 0, 0),
15960 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
15961 "Tertiary TDM2 Hostless Capture",
15962 0, 0, 0, 0),
15963 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
15964 "Tertiary TDM3 Hostless Playback",
15965 0, 0, 0, 0),
15966 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
15967 "Tertiary TDM3 Hostless Capture",
15968 0, 0, 0, 0),
15969 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
15970 "Tertiary TDM4 Hostless Playback",
15971 0, 0, 0, 0),
15972 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
15973 "Tertiary TDM4 Hostless Capture",
15974 0, 0, 0, 0),
15975 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
15976 "Tertiary TDM5 Hostless Playback",
15977 0, 0, 0, 0),
15978 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
15979 "Tertiary TDM5 Hostless Capture",
15980 0, 0, 0, 0),
15981 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
15982 "Tertiary TDM6 Hostless Playback",
15983 0, 0, 0, 0),
15984 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
15985 "Tertiary TDM6 Hostless Capture",
15986 0, 0, 0, 0),
15987 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
15988 "Tertiary TDM7 Hostless Playback",
15989 0, 0, 0, 0),
15990 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
15991 "Tertiary TDM7 Hostless Capture",
15992 0, 0, 0, 0),
15993 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
15994 "Quaternary TDM0 Hostless Playback",
15995 0, 0, 0, 0),
15996 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
15997 "Quaternary TDM0 Hostless Capture",
15998 0, 0, 0, 0),
15999 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
16000 "Quaternary TDM1 Hostless Playback",
16001 0, 0, 0, 0),
16002 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
16003 "Quaternary TDM1 Hostless Capture",
16004 0, 0, 0, 0),
16005 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
16006 "Quaternary TDM2 Hostless Playback",
16007 0, 0, 0, 0),
16008 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
16009 "Quaternary TDM2 Hostless Capture",
16010 0, 0, 0, 0),
16011 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
16012 "Quaternary TDM3 Hostless Playback",
16013 0, 0, 0, 0),
16014 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
16015 "Quaternary TDM3 Hostless Capture",
16016 0, 0, 0, 0),
16017 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
16018 "Quaternary TDM4 Hostless Playback",
16019 0, 0, 0, 0),
16020 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
16021 "Quaternary TDM4 Hostless Capture",
16022 0, 0, 0, 0),
16023 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
16024 "Quaternary TDM5 Hostless Playback",
16025 0, 0, 0, 0),
16026 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
16027 "Quaternary TDM5 Hostless Capture",
16028 0, 0, 0, 0),
16029 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
16030 "Quaternary TDM6 Hostless Playback",
16031 0, 0, 0, 0),
16032 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
16033 "Quaternary TDM6 Hostless Capture",
16034 0, 0, 0, 0),
16035 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
16036 "Quaternary TDM7 Hostless Playback",
16037 0, 0, 0, 0),
16038 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
16039 "Quaternary TDM7 Hostless Capture",
16040 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053016041 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
16042 "Quinary TDM0 Hostless Playback",
16043 0, 0, 0, 0),
16044 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
16045 "Quinary TDM0 Hostless Capture",
16046 0, 0, 0, 0),
16047 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
16048 "Quinary TDM1 Hostless Playback",
16049 0, 0, 0, 0),
16050 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
16051 "Quinary TDM1 Hostless Capture",
16052 0, 0, 0, 0),
16053 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
16054 "Quinary TDM2 Hostless Playback",
16055 0, 0, 0, 0),
16056 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
16057 "Quinary TDM2 Hostless Capture",
16058 0, 0, 0, 0),
16059 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
16060 "Quinary TDM3 Hostless Playback",
16061 0, 0, 0, 0),
16062 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
16063 "Quinary TDM3 Hostless Capture",
16064 0, 0, 0, 0),
16065 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
16066 "Quinary TDM4 Hostless Playback",
16067 0, 0, 0, 0),
16068 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
16069 "Quinary TDM4 Hostless Capture",
16070 0, 0, 0, 0),
16071 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
16072 "Quinary TDM5 Hostless Playback",
16073 0, 0, 0, 0),
16074 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
16075 "Quinary TDM5 Hostless Capture",
16076 0, 0, 0, 0),
16077 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
16078 "Quinary TDM6 Hostless Playback",
16079 0, 0, 0, 0),
16080 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
16081 "Quinary TDM6 Hostless Capture",
16082 0, 0, 0, 0),
16083 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
16084 "Quinary TDM7 Hostless Playback",
16085 0, 0, 0, 0),
16086 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
16087 "Quinary TDM7 Hostless Capture",
16088 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016089
16090 /* LSM */
16091 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
16092 0, 0, 0, 0),
16093 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
16094 0, 0, 0, 0),
16095 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
16096 0, 0, 0, 0),
16097 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
16098 0, 0, 0, 0),
16099 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
16100 0, 0, 0, 0),
16101 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
16102 0, 0, 0, 0),
16103 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
16104 0, 0, 0, 0),
16105 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
16106 0, 0, 0, 0),
16107 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
16108 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
16109 /* Backend AIF */
16110 /* Stream name equals to backend dai link stream name */
16111 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
16112 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
16113 0, 0, 0, 0),
16114 SND_SOC_DAPM_AIF_OUT("SPDIF_RX", "SPDIF Playback", 0, 0, 0, 0),
16115 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
16116 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
16117 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
16118 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
16119 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
16120 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070016121 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
16122 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016123 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
16124 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
16125 0, 0, 0, 0),
16126 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
16127 0, 0, 0, 0),
16128 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
16129 0, 0, 0, 0),
16130 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
16131 "Secondary MI2S Playback SD1",
16132 0, 0, 0, 0),
16133 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
16134 0, 0, 0, 0),
16135 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
16136 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053016137 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
16138 0, 0, 0, 0),
16139 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
16140 0, 0, 0, 0),
16141 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
16142 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016143 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
16144 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053016145 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
16146 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016147 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
16148 0, 0, 0, 0),
16149 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
16150 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
16151 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
16152 0, 0, 0, 0),
16153 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
16154 0, 0, 0, 0),
16155 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
16156 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053016157 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
16158 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016159 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
16160 0, 0, 0, 0),
16161 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
16162 0, 0, 0, 0),
16163 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
16164 0, 0, 0, 0),
16165 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
16166 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
16167 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
16168 0, 0, 0, 0),
16169 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
16170 0, 0, 0, 0),
16171 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
16172 0, 0, 0, 0),
16173 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
16174 0, 0, 0, 0),
16175 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
16176 0, 0, 0, 0),
16177 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
16178 0, 0, 0, 0),
16179 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
16180 0, 0, 0, 0),
16181 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
16182 0, 0, 0, 0),
16183 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
16184 0, 0, 0, 0),
16185 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
16186 0, 0, 0, 0),
16187 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
16188 0, 0, 0, 0),
16189 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
16190 0, 0, 0, 0),
16191 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
16192 0, 0, 0, 0),
16193 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
16194 0, 0, 0, 0),
16195 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
16196 0, 0, 0, 0),
16197 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
16198 0, 0, 0, 0),
16199 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
16200 0, 0, 0, 0),
16201 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
16202 0, 0, 0, 0),
16203 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
16204 0, 0, 0, 0),
16205 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
16206 0, 0, 0, 0),
16207 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
16208 0, 0, 0, 0),
16209 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
16210 0, 0, 0, 0),
16211 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
16212 0, 0, 0, 0),
16213 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
16214 0, 0, 0, 0),
16215 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
16216 0, 0, 0, 0),
16217 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
16218 0, 0, 0, 0),
16219 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
16220 0, 0, 0, 0),
16221 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
16222 0, 0, 0, 0),
16223 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
16224 0, 0, 0, 0),
16225 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
16226 0, 0, 0, 0),
16227 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
16228 0, 0, 0, 0),
16229 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
16230 0, 0, 0, 0),
16231 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
16232 0, 0, 0, 0),
16233 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
16234 0, 0, 0, 0),
16235 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
16236 0, 0, 0, 0),
16237 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
16238 0, 0, 0, 0),
16239 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
16240 0, 0, 0, 0),
16241 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
16242 0, 0, 0, 0),
16243 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
16244 0, 0, 0, 0),
16245 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
16246 0, 0, 0, 0),
16247 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
16248 0, 0, 0, 0),
16249 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
16250 0, 0, 0, 0),
16251 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
16252 0, 0, 0, 0),
16253 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
16254 0, 0, 0, 0),
16255 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
16256 0, 0, 0, 0),
16257 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
16258 0, 0, 0, 0),
16259 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
16260 0, 0, 0, 0),
16261 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
16262 0, 0, 0, 0),
16263 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
16264 0, 0, 0, 0),
16265 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
16266 0, 0, 0, 0),
16267 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
16268 0, 0, 0, 0),
16269 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
16270 0, 0, 0, 0),
16271 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
16272 0, 0, 0, 0),
16273 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
16274 0, 0, 0, 0),
16275 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
16276 0, 0, 0, 0),
16277 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
16278 0, 0, 0, 0),
16279 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
16280 0, 0, 0, 0),
16281 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
16282 0, 0, 0, 0),
16283 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
16284 0, 0, 0, 0),
16285 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
16286 0, 0, 0, 0),
16287 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
16288 0, 0, 0, 0),
16289 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
16290 0, 0, 0, 0),
16291 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
16292 0, 0, 0, 0),
16293 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
16294 0, 0, 0, 0),
16295 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
16296 0, 0, 0, 0),
16297 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
16298 0, 0, 0, 0),
16299 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
16300 0, 0, 0, 0),
16301 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
16302 0, 0, 0, 0),
16303 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
16304 0, 0, 0, 0),
16305 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
16306 0, 0, 0, 0),
16307 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
16308 0, 0, 0, 0),
16309 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
16310 0, 0, 0, 0),
16311 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
16312 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053016313 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
16314 0, 0, 0, 0),
16315 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
16316 0, 0, 0, 0),
16317 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
16318 0, 0, 0, 0),
16319 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
16320 0, 0, 0, 0),
16321 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
16322 0, 0, 0, 0),
16323 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
16324 0, 0, 0, 0),
16325 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
16326 0, 0, 0, 0),
16327 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
16328 0, 0, 0, 0),
16329 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
16330 0, 0, 0, 0),
16331 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
16332 0, 0, 0, 0),
16333 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
16334 0, 0, 0, 0),
16335 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
16336 0, 0, 0, 0),
16337 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
16338 0, 0, 0, 0),
16339 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
16340 0, 0, 0, 0),
16341 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
16342 0, 0, 0, 0),
16343 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
16344 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016345 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
16346 0, 0, 0, 0),
16347 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
16348 0, 0, 0, 0),
16349 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
16350 0, 0, 0, 0),
16351 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
16352 0, 0, 0, 0),
16353 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
16354 0, 0, 0, 0),
16355 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
16356 0, 0, 0, 0),
16357 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
16358 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016359 /* incall */
16360 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
16361 0, 0, 0, 0),
16362 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
16363 0, 0, 0, 0),
16364 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
16365 0, 0, 0, 0),
16366 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
16367 0, 0, 0, 0),
16368 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
16369 0, 0, 0, 0),
16370 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
16371 0, 0, 0, 0),
16372 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
16373 0, 0, 0, 0),
16374 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
16375 0, 0, 0, 0),
16376 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
16377
16378 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
16379 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
16380 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
16381 0, 0, 0, 0),
16382 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
16383 0, 0, 0, 0),
16384 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
16385 0, 0, 0, 0),
16386 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
16387 0, 0, 0, 0),
16388 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
16389 0, 0, 0, 0),
16390 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
16391 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053016392 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
16393 0, 0, 0, 0),
16394 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
16395 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016396 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
16397 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
16398 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
16399 0, 0, 0, 0),
16400 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
16401 0, 0, 0, 0),
16402 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
16403 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
16404 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
16405 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
16406 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
16407 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
16408 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
16409 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
16410 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
16411 /* In- call recording */
16412 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
16413 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
16414
16415 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
16416 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
16417
16418 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
16419 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
16420 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
16421 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
16422
16423 /* Switch Definitions */
16424 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
16425 &slim_fm_switch_mixer_controls),
16426 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
16427 &slim1_fm_switch_mixer_controls),
16428 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
16429 &slim3_fm_switch_mixer_controls),
16430 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
16431 &slim4_fm_switch_mixer_controls),
16432 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
16433 &slim6_fm_switch_mixer_controls),
16434 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
16435 &pcm_rx_switch_mixer_controls),
16436 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
16437 &int0_mi2s_rx_switch_mixer_controls),
16438 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
16439 &int4_mi2s_rx_switch_mixer_controls),
16440 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
16441 &pri_mi2s_rx_switch_mixer_controls),
16442 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
16443 &sec_mi2s_rx_switch_mixer_controls),
16444 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
16445 &tert_mi2s_rx_switch_mixer_controls),
16446 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
16447 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053016448 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
16449 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016450 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
16451 &hfp_pri_aux_switch_mixer_controls),
16452 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
16453 &hfp_aux_switch_mixer_controls),
16454 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
16455 &hfp_int_switch_mixer_controls),
16456 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
16457 &hfp_slim7_switch_mixer_controls),
16458 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
16459 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016460 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
16461 &a2dp_slim7_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016462
16463 /* Mixer definitions */
16464 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16465 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
16466 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16467 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
16468 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16469 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
16470 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16471 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
16472 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16473 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
16474 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16475 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
16476 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
16477 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
16478 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
16479 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070016480 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
16481 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016482 SND_SOC_DAPM_MIXER("SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16483 spdif_rx_mixer_controls, ARRAY_SIZE(spdif_rx_mixer_controls)),
16484 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16485 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
16486 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16487 quaternary_mi2s_rx_mixer_controls,
16488 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
16489 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16490 tertiary_mi2s_rx_mixer_controls,
16491 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
16492 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16493 secondary_mi2s_rx_mixer_controls,
16494 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
16495 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
16496 secondary_mi2s_rx2_mixer_controls,
16497 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
16498 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16499 primary_mi2s_rx_mixer_controls,
16500 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
16501 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16502 int0_mi2s_rx_mixer_controls,
16503 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
16504 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16505 int4_mi2s_rx_mixer_controls,
16506 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
16507 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16508 quinary_mi2s_rx_mixer_controls,
16509 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
16510 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16511 pri_tdm_rx_0_mixer_controls,
16512 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
16513 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
16514 pri_tdm_rx_1_mixer_controls,
16515 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
16516 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
16517 pri_tdm_rx_2_mixer_controls,
16518 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
16519 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
16520 pri_tdm_rx_3_mixer_controls,
16521 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
16522 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16523 pri_tdm_tx_0_mixer_controls,
16524 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
16525 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16526 sec_tdm_rx_0_mixer_controls,
16527 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
16528 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
16529 sec_tdm_rx_1_mixer_controls,
16530 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
16531 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
16532 sec_tdm_rx_2_mixer_controls,
16533 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
16534 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
16535 sec_tdm_rx_3_mixer_controls,
16536 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
16537 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16538 sec_tdm_tx_0_mixer_controls,
16539 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
16540 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16541 tert_tdm_rx_0_mixer_controls,
16542 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
16543 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16544 tert_tdm_tx_0_mixer_controls,
16545 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
16546 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
16547 tert_tdm_rx_1_mixer_controls,
16548 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
16549 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
16550 tert_tdm_rx_2_mixer_controls,
16551 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
16552 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
16553 tert_tdm_rx_3_mixer_controls,
16554 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
16555 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
16556 tert_tdm_rx_4_mixer_controls,
16557 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
16558 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16559 quat_tdm_rx_0_mixer_controls,
16560 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
16561 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16562 quat_tdm_tx_0_mixer_controls,
16563 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
16564 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
16565 quat_tdm_rx_1_mixer_controls,
16566 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
16567 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
16568 quat_tdm_rx_2_mixer_controls,
16569 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
16570 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
16571 quat_tdm_rx_3_mixer_controls,
16572 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016573 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16574 quin_tdm_rx_0_mixer_controls,
16575 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
16576 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16577 quin_tdm_tx_0_mixer_controls,
16578 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
16579 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
16580 quin_tdm_rx_1_mixer_controls,
16581 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
16582 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
16583 quin_tdm_rx_2_mixer_controls,
16584 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
16585 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
16586 quin_tdm_rx_3_mixer_controls,
16587 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016588 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
16589 wsa_cdc_dma_rx_0_mixer_controls,
16590 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
16591 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
16592 wsa_cdc_dma_rx_1_mixer_controls,
16593 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016594 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
16595 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
16596 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
16597 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
16598 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
16599 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
16600 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
16601 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
16602 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
16603 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
16604 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
16605 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
16606 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
16607 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
16608 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
16609 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053016610 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
16611 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053016612 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
16613 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016614 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
16615 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
16616 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
16617 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
16618 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
16619 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
16620 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
16621 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053016622 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
16623 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
16624 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
16625 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016626 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16627 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
16628 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16629 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
16630 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16631 tert_auxpcm_rx_mixer_controls,
16632 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
16633 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16634 quat_auxpcm_rx_mixer_controls,
16635 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016636 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16637 quin_auxpcm_rx_mixer_controls,
16638 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016639 /* incall */
16640 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
16641 incall_music_delivery_mixer_controls,
16642 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
16643 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
16644 incall_music2_delivery_mixer_controls,
16645 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
16646 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16647 slimbus_4_rx_mixer_controls,
16648 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
16649 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16650 slimbus_6_rx_mixer_controls,
16651 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
16652 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16653 usb_audio_rx_mixer_controls,
16654 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
16655 /* Voice Mixer */
16656 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
16657 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
16658 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
16659 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
16660 SND_SOC_NOPM, 0, 0,
16661 sec_i2s_rx_voice_mixer_controls,
16662 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
16663 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
16664 SND_SOC_NOPM, 0, 0,
16665 sec_mi2s_rx_voice_mixer_controls,
16666 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
16667 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
16668 SND_SOC_NOPM, 0, 0,
16669 slimbus_rx_voice_mixer_controls,
16670 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
16671 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
16672 SND_SOC_NOPM, 0, 0,
16673 bt_sco_rx_voice_mixer_controls,
16674 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
16675 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
16676 SND_SOC_NOPM, 0, 0,
16677 afe_pcm_rx_voice_mixer_controls,
16678 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
16679 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
16680 SND_SOC_NOPM, 0, 0,
16681 aux_pcm_rx_voice_mixer_controls,
16682 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
16683 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
16684 SND_SOC_NOPM, 0, 0,
16685 sec_aux_pcm_rx_voice_mixer_controls,
16686 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
16687 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
16688 SND_SOC_NOPM, 0, 0,
16689 tert_aux_pcm_rx_voice_mixer_controls,
16690 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
16691 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
16692 SND_SOC_NOPM, 0, 0,
16693 quat_aux_pcm_rx_voice_mixer_controls,
16694 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016695 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
16696 SND_SOC_NOPM, 0, 0,
16697 quin_aux_pcm_rx_voice_mixer_controls,
16698 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016699 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
16700 SND_SOC_NOPM, 0, 0,
16701 hdmi_rx_voice_mixer_controls,
16702 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
16703 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
16704 SND_SOC_NOPM, 0, 0,
16705 mi2s_rx_voice_mixer_controls,
16706 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
16707 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
16708 SND_SOC_NOPM, 0, 0,
16709 pri_mi2s_rx_voice_mixer_controls,
16710 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
16711 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
16712 SND_SOC_NOPM, 0, 0,
16713 int0_mi2s_rx_voice_mixer_controls,
16714 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
16715 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
16716 SND_SOC_NOPM, 0, 0,
16717 int4_mi2s_rx_voice_mixer_controls,
16718 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
16719 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
16720 SND_SOC_NOPM, 0, 0,
16721 tert_mi2s_rx_voice_mixer_controls,
16722 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
16723 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
16724 SND_SOC_NOPM, 0, 0,
16725 quat_mi2s_rx_voice_mixer_controls,
16726 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
16727 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
16728 SND_SOC_NOPM, 0, 0,
16729 quin_mi2s_rx_voice_mixer_controls,
16730 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
16731 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
16732 SND_SOC_NOPM, 0, 0,
16733 quat_tdm_rx_2_voice_mixer_controls,
16734 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016735 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
16736 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
16737 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016738 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
16739 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
16740 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
16741 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
16742 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
16743 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
16744 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16745 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
16746 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16747 int_bt_a2dp_rx_mixer_controls,
16748 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
16749 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16750 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
16751 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16752 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
16753 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16754 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
16755 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16756 tx_voice2_stub_mixer_controls,
16757 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
16758 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16759 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
16760 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
16761 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
16762 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
16763 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
16764 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16765 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
16766 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
16767 SND_SOC_NOPM, 0, 0,
16768 slimbus_6_rx_voice_mixer_controls,
16769 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
16770 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16771 slimbus_7_rx_voice_mixer_controls,
16772 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
16773 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16774 slimbus_8_rx_voice_mixer_controls,
16775 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
16776 /* port mixer */
16777 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
16778 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
16779 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
16780 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
16781 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
16782 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
16783 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
16784 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
16785 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
16786 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
16787 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
16788 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
16789 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
16790 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
16791 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016792 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
16793 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
16794 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016795 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16796 sbus_1_rx_port_mixer_controls,
16797 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
16798 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16799 bt_sco_rx_port_mixer_controls,
16800 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
16801 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
16802 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
16803 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
16804 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
16805 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
16806 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
16807 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
16808 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
16809 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070016810 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070016811 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
16812 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016813 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
16814 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
16815 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
16816 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
16817 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
16818 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
16819 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
16820 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
16821 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
16822 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16823 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
16824 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16825 primary_mi2s_rx_port_mixer_controls,
16826 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
16827 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16828 sec_mi2s_rx_port_mixer_controls,
16829 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
16830 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16831 tert_mi2s_rx_port_mixer_controls,
16832 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
16833 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16834 quat_mi2s_rx_port_mixer_controls,
16835 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016836 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16837 quin_mi2s_rx_port_mixer_controls,
16838 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016839 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16840 pri_tdm_rx_0_port_mixer_controls,
16841 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
16842 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16843 pri_tdm_rx_1_port_mixer_controls,
16844 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
16845 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16846 pri_tdm_rx_2_port_mixer_controls,
16847 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
16848 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16849 pri_tdm_rx_3_port_mixer_controls,
16850 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
16851 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16852 sec_tdm_rx_0_port_mixer_controls,
16853 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
16854 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16855 sec_tdm_rx_1_port_mixer_controls,
16856 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
16857 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16858 sec_tdm_rx_2_port_mixer_controls,
16859 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
16860 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16861 sec_tdm_rx_3_port_mixer_controls,
16862 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
16863 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16864 tert_tdm_rx_0_port_mixer_controls,
16865 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
16866 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16867 tert_tdm_rx_1_port_mixer_controls,
16868 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
16869 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16870 tert_tdm_rx_2_port_mixer_controls,
16871 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
16872 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16873 tert_tdm_rx_3_port_mixer_controls,
16874 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
16875 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16876 quat_tdm_rx_0_port_mixer_controls,
16877 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
16878 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16879 quat_tdm_rx_1_port_mixer_controls,
16880 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
16881 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16882 quat_tdm_rx_2_port_mixer_controls,
16883 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
16884 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16885 quat_tdm_rx_3_port_mixer_controls,
16886 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016887 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16888 quin_tdm_rx_0_port_mixer_controls,
16889 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
16890 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16891 quin_tdm_rx_1_port_mixer_controls,
16892 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
16893 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16894 quin_tdm_rx_2_port_mixer_controls,
16895 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
16896 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16897 quin_tdm_rx_3_port_mixer_controls,
16898 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016899 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16900 int0_mi2s_rx_port_mixer_controls,
16901 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
16902 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16903 int4_mi2s_rx_port_mixer_controls,
16904 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
16905 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
16906 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
16907 ARRAY_SIZE(tx_qchat_mixer_controls)),
16908 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
16909 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
16910 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
16911 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
16912 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
16913 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080016914 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
16915 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
16916 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070016917 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
16918 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
16919 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016920 /* lsm mixer definitions */
16921 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
16922 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
16923 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
16924 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
16925 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
16926 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
16927 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
16928 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
16929 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
16930 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
16931 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
16932 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
16933 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
16934 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
16935 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
16936 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
16937 /* Virtual Pins to force backends ON atm */
16938 SND_SOC_DAPM_OUTPUT("BE_OUT"),
16939 SND_SOC_DAPM_INPUT("BE_IN"),
16940
16941 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
16942 &slim0_rx_vi_fb_lch_mux),
16943 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
16944 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016945 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
16946 &wsa_rx_0_vi_fb_lch_mux),
16947 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
16948 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016949 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
16950 &mi2s_rx_vi_fb_mux),
16951 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
16952 &int4_mi2s_rx_vi_fb_mono_ch_mux),
16953 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
16954 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
16955
16956 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
16957 &voc_ext_ec_mux),
16958 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
16959 &ext_ec_ref_mux_ul1),
16960 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
16961 &ext_ec_ref_mux_ul2),
16962 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
16963 &ext_ec_ref_mux_ul3),
16964 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
16965 &ext_ec_ref_mux_ul4),
16966 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
16967 &ext_ec_ref_mux_ul5),
16968 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
16969 &ext_ec_ref_mux_ul6),
16970 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
16971 &ext_ec_ref_mux_ul8),
16972 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
16973 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053016974 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
16975 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053016976 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
16977 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016978 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
16979 &ext_ec_ref_mux_ul17),
16980 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
16981 &ext_ec_ref_mux_ul18),
16982 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
16983 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080016984 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
16985 &ext_ec_ref_mux_ul28),
16986 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
16987 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016988};
16989
16990static const struct snd_soc_dapm_route intercon[] = {
16991 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16992 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16993 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16994 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16995 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16996 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16997 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16998 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16999 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17000 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17001 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17002 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17003 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17004 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17005 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17006 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17007 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
17008
17009 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17010 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17011 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17012 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17013 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17014 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17015 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17016 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17017 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17018 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17019 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17020 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17021 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17022 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17023 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17024 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17025 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
17026
17027 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17028 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17029 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17030 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17031 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17032 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17033 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17034 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17035 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17036 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17037 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17038 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17039 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17040 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17041 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17042 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17043 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
17044
17045 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17046 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17047 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17048 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17049 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17050 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17051 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17052 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17053 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17054 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17055 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17056 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17057 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17058 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17059 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17060 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17061 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
17062
17063 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17064 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17065 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17066 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17067 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17068 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17069 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17070 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17071 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17072 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17073 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17074 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17075 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17076 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17077 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17078 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17079 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
17080
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017081 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17082 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17083 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17084 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17085 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17086 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17087 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17088 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17089 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17090 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17091 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17092 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17093 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17094 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17095 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17096 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17097 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
17098
17099 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17100 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17101 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17102 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17103 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17104 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17105 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17106 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17107 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17108 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17109 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17110 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17111 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17112 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17113 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17114 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17115 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
17116
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017117 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
17118 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
17119 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
17120 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
17121 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
17122 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
17123 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
17124 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
17125 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
17126 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
17127 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
17128 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
17129 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
17130 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
17131 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
17132 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
17133 {"HDMI", NULL, "HDMI Mixer"},
17134
17135 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
17136 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
17137 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
17138 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
17139 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
17140 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
17141 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
17142 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
17143 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
17144 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
17145 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
17146 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
17147 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
17148 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
17149 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
17150 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
17151 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
17152
Karthikeyan Mani57550082018-05-03 18:43:58 -070017153 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
17154 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
17155 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
17156 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
17157 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
17158 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
17159 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
17160 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
17161 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
17162 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
17163 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
17164 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
17165 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
17166 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
17167 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
17168 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
17169 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
17170
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017171 {"SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17172 {"SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17173 {"SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17174 {"SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17175 {"SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17176 {"SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17177 {"SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17178 {"SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17179 {"SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17180 {"SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17181 {"SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17182 {"SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17183 {"SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17184 {"SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17185 {"SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17186 {"SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17187 {"SPDIF_RX", NULL, "SPDIF_RX Audio Mixer"},
17188
17189 /* incall */
17190 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
17191 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
17192 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
17193 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
17194 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
17195 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17196 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17197 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17198 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17199 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
17200 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17201 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17202 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17203 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17204 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
17205
17206 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17207 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17208 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17209 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17210 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17211 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17212 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17213 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17214 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17215 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17216 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17217 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17218 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17219 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17220 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17221 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17222 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
17223
17224 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17225 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17226 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17227 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17228 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17229 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17230 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17231 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17232 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17233 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17234 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17235 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17236 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17237 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17238 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17239 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17240 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
17241
17242 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17243 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17244 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17245 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17246 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17247 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17248 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17249 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17250 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17251 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17252 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17253 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17254 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17255 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17256 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17257 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17258 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
17259
17260 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
17261 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
17262 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
17263 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
17264 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
17265 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
17266 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
17267 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
17268 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
17269 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
17270 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
17271 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
17272 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17273 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17274 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17275 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053017276 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17277 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017278 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17279 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17280 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17281 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17282 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17283 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053017284 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17285 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017286 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053017287 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17288 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17289 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17290 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17291 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17292 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017293 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053017294 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17295 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17296 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017297 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17298 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17299 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017300 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017301 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017302 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
17303 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017304 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017305 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17306 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17307 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17308 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17309 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17310 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17311 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17312 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17313 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17314 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17315 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17316 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17317 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17318 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17319 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17320 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17321 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
17322
17323 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17324 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17325 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17326 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17327 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17328 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17329 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17330 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17331 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17332 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17333 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17334 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17335 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17336 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17337 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17338 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
17339
17340 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17341 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17342 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17343 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17344 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17345 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17346 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17347 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17348 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17349 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17350 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17351 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17352 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17353 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17354 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
17355
17356 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17357 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17358 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17359 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17360 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17361 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17362 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17363 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17364 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17365 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17366 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17367 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17368 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17369 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17370 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
17371
17372 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17373 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
17374
17375 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17376 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17377
17378 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17379 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17380 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17381 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17382 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17383 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17384 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17385 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17386 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17387 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17388 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17389 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17390 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17391 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17392 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17393 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
17394
17395 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17396 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17397 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17398 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17399 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17400 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17401 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17402 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17403 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17404 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17405 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17406 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17407 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17408 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17409 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17410 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
17411
17412 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17413 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17414 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17415 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17416 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17417 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17418 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17419 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17420 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17421 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17422 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17423 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17424 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17425 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17426 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17427 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
17428
17429 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17430 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17431 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17432 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17433 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17434 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17435 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17436 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17437 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17438 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17439 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17440 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17441 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17442 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17443 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17444 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17445 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17446 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
17447
17448 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17449 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17450 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17451 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17452 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17453 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17454 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17455 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17456 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17457 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17458 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17459 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17460 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17461 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17462 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17463 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17464 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
17465
17466 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17467 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17468 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17469 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17470 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17471 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17472 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17473 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17474 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17475 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17476 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17477 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17478 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17479 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17480 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17481 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17482 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
17483
17484 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17485 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17486 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17487 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17488 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17489 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17490 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17491 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17492 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17493 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17494 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17495 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17496 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17497 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17498 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17499 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17500 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
17501
17502 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17503 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17504 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17505 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17506 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17507 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17508 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17509 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17510 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17511 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17512 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17513 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17514 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17515 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17516 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17517 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17518 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
17519
17520 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17521 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17522 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17523 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17524 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17525 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17526 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17527 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17528 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17529 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17530 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17531 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17532 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17533 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17534 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17535 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17536 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
17537
17538 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17539 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17540 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17541 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17542 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17543 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17544 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17545 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17546 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17547 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17548 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17549 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17550 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17551 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17552 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17553 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17554 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
17555
17556 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17557 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17558 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17559 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17560 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17561 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17562 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17563 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17564 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17565 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17566 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17567 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17568 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17569 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17570 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17571 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17572 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
17573
17574 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17575 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17576 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17577 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17578 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17579 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17580 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17581 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17582 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17583 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17584 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17585 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17586 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17587 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17588 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17589 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17590 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
17591
17592 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17593 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17594 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17595 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17596 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17597 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17598 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17599 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17600 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17601 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17602 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17603 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17604 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17605 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17606 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17607 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17608 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
17609
17610 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17611 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17612 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17613 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17614 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17615 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17616 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17617 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17618 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17619 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17620 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17621 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17622 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17623 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17624 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17625 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17626 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
17627
17628 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17629 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17630 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17631 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17632 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17633 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17634 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17635 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17636 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17637 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17638 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17639 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17640 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17641 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17642 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17643 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17644 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
17645
17646 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17647 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17648 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17649 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17650 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17651 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17652 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17653 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17654 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17655 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17656 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17657 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17658 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17659 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17660 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17661 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17662 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
17663
17664 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17665 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17666 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17667 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17668 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17669 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17670 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17671 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17672 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17673 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17674 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17675 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17676 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17677 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17678 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17679 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17680 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
17681
17682 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17683 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17684 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17685 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17686 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17687 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17688 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17689 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17690 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17691 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17692 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17693 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17694 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17695 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17696 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17697 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17698 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
17699
17700 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17701 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17702 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17703 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17704 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17705 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17706 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17707 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17708 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17709 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17710 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17711 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17712 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17713 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17714 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17715 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17716 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
17717
17718 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
17719 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
17720 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
17721 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
17722 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
17723 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
17724 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
17725 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
17726 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
17727 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
17728 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
17729 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
17730 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
17731 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
17732 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
17733 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
17734 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
17735
17736 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17737 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17738 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17739 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17740 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17741 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17742 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17743 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17744 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17745 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17746 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17747 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17748 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17749 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17750 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17751 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17752 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
17753 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
17754
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017755 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17756 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17757 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17758 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17759 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17760 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17761 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17762 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17763 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17764 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17765 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17766 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17767 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17768 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17769 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17770 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17771 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
17772
17773 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17774 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17775 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17776 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17777 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17778 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17779 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17780 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17781 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17782 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17783 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17784 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17785 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17786 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17787 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17788 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17789 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
17790 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
17791
17792 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17793 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17794 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17795 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17796 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17797 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17798 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17799 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17800 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17801 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17802 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17803 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17804 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17805 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17806 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17807 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17808 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
17809 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
17810
17811 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17812 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17813 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17814 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17815 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17816 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17817 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17818 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17819 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17820 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17821 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17822 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17823 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17824 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17825 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17826 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17827 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
17828 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
17829
Rohit Kumara5077932017-09-10 22:05:05 +053017830 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17831 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17832 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17833 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17834 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17835 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17836 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17837 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17838 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17839 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17840 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17841 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17842 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17843 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17844 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17845 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17846 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
17847 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
17848
17849 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17850 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17851 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17852 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17853 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17854 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17855 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17856 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17857 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17858 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17859 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17860 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17861 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17862 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17863 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17864 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17865 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
17866
17867 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17868 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17869 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17870 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17871 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17872 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17873 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17874 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17875 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17876 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17877 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17878 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17879 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17880 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17881 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17882 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17883 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
17884 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
17885
17886 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17887 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17888 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17889 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17890 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17891 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17892 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17893 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17894 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17895 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17896 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17897 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17898 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17899 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17900 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17901 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17902 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
17903 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
17904
17905 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17906 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17907 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17908 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17909 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17910 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17911 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17912 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17913 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17914 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17915 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17916 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17917 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17918 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17919 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17920 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17921 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
17922 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
17923
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017924 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
17925 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
17926 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
17927 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
17928 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017929 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017930 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017931 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17932 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17933 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17934 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
17935 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
17936 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17937 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17938 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17939 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17940 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17941 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17942 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17943 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
17944 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
17945 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017946 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017947 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
17948 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
17949 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017950 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017951 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
17952 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017953 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
17954 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
17955 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017956 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017957 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
17958 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
17959 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017960 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017961 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017962 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
17963 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
17964 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017965 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17966 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
17967 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
17968 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
17969 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17970 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17971 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17972 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17973 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17974 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17975 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017976 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017977 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17978 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17979 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017980 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017981 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017982 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17983 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17984 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017985 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017986 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053017987 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17988 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17989 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17990 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17991 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017992 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17993 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
17994 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
17995 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017996 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017997
17998 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17999 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18000 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18001 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18002 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18003 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18004 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18005 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18006 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18007 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18008 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18009 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18010 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18011 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18012 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18013 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018014 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18015 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18016 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18017 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018018 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18019 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18020 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18021 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18022 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018023
18024 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18025 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18026 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18027 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18028 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18029 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18030 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18031 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18032 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18033 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18034 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18035 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18036 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18037 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18038 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18039 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018040 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18041 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18042 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18043 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018044 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18045 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18046 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18047 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18048 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018049
18050 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18051 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18052 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18053 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18054 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18055 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18056 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18057 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18058 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18059 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18060 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18061 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18062 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18063 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18064 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18065 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018066 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18067 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18068 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18069 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018070 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18071 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18072 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18073 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18074 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018075
18076 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18077 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18078 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18079 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18080 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18081 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18082 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18083 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18084 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18085 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18086 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18087 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18088 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18089 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18090 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18091 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018092 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18093 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18094 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18095 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018096 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18097 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18098 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18099 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18100 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018101
18102 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18103 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18104 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18105 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18106 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18107 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18108 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18109 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18110 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18111 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18112 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18113 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18114 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18115 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18116 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18117 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018118 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18119 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18120 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18121 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018122 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18123 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18124 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18125 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18126 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018127
18128 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18129 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18130 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18131 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18132 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18133 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18134 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18135 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18136 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18137 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18138 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18139 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18140 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18141 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18142 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18143 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018144 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18145 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18146 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18147 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018148 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18149 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18150 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18151 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18152 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018153
18154 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18155 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18156 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18157 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18158 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18159 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18160 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18161 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18162 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18163 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18164 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18165 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18166 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18167 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18168 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18169 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018170 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18171 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18172 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18173 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018174 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18175 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18176 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18177 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18178 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
18179 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018180
18181 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18182 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18183 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18184 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18185 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18186 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18187 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18188 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018189 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18190 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18191 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18192 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018193 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18194 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18195 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18196 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18197 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
18198 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018199
Laxminath Kasam38070be2017-08-17 18:21:59 +053018200 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18201 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18202 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18203 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18204 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18205 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18206 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18207 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018208 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18209 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18210 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18211 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018212 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018213 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18214 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18215 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18216 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18217 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18218 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18219 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18220 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18221 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18222 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18223 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18224 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18225 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18226 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18227 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18228 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018229 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18230 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18231 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18232 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018233 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18234 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18235 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18236 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18237 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
18238 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018239
18240 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
18241 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
18242 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
18243 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
18244 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
18245 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053018246 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018247
Asish Bhattacharya34504582017-08-08 12:55:01 +053018248 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18249 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18250 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18251 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18252 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18253 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18254 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18255 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18256 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18257 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18258 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18259 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18260 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18261 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18262 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18263 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18264 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018265 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
18266 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
18267 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
18268 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18269 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
18270 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053018271
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018272 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18273 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18274 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18275 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18276 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18277 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18278 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18279 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18280 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18281 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18282 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18283 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18284 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18285 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18286 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18287 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18288 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
18289 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
18290
18291 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18292 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18293 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18294 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18295 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18296 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18297 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18298 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18299 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18300 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18301 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18302 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18303 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18304 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18305 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18306 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18307 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
18308 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
18309
18310 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18311 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18312 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18313 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18314 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18315 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18316 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18317 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18318 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18319 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18320 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18321 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18322 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18323 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18324 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18325 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18326 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
18327
18328 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18329 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18330 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18331 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18332 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18333 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18334 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18335 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18336 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18337 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18338 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18339 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18340 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18341 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18342 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18343 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18344 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
18345
18346 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18347 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18348 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053018349 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018350 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18351 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18352 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018353 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18354 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018355 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18356 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053018357 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018358 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18359 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053018360 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018361 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18362 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18363 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018364 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18365 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018366 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18367 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18368 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18369
18370 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
18371 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
18372 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053018373 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018374 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
18375 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
18376 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018377 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
18378 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018379 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
18380 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053018381 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018382 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
18383 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18384 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
18385 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
18386 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
18387 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
18388 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
18389 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
18390 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053018391 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053018392 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018393 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
18394 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
18395 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
18396 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018397 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
18398 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018399
18400 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18401 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18402 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18403 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18404 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18405 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18406 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18407 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18408 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18409 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18410 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18411 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18412 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18413 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18414 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18415 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18416 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
18417
18418 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18419 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18420 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18421 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18422 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18423 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18424 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18425 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18426 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18427 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18428 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18429 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18430 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18431 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18432 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18433 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18434 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
18435
18436 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18437 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18438 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18439 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18440 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18441 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18442 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18443 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18444 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18445 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18446 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18447 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18448 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18449 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18450 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18451 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18452 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
18453
18454 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18455 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18456 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18457 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18458 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18459 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18460 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18461 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18462 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18463 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18464 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18465 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18466 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18467 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18468 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18469 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18470 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
18471
Rohit Kumara5077932017-09-10 22:05:05 +053018472 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18473 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18474 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18475 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18476 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18477 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18478 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18479 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18480 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18481 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18482 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18483 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18484 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18485 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18486 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18487 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18488 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
18489
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018490 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
18491 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18492 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18493 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18494 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18495 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
18496
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018497 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
18498 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18499 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18500 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
18501
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018502 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
18503 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18504 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18505 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18506 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18507 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
18508
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018509 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
18510 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018511 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18512 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18513 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18514 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
18515
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018516 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
18517 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018518 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18519 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18520 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18521 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
18522
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018523 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
18524 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018525 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18526 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18527 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18528 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
18529
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080018530 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
18531 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080018532 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18533 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18534 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18535 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
18536
Karthikeyan Mani57550082018-05-03 18:43:58 -070018537 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
18538 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18539 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
18540 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18541 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18542 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
18543
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018544 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
18545 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18546 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18547 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18548 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018549 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
18550
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018551 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
18552 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18553 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18554 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18555 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18556 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
18557
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018558 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
18559 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018560 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18561 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18562 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18563 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
18564
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018565 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
18566 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018567 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18568 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18569 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18570 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
18571
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018572 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
18573 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018574 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18575 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18576 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18577 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
18578
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018579 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
18580 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018581 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18582 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18583 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18584 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
18585
Rohit Kumara5077932017-09-10 22:05:05 +053018586 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
18587 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053018588 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18589 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18590 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18591 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
18592
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018593 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
18594 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18595 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18596 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18597 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18598 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
18599 {"HDMI", NULL, "HDMI_DL_HL"},
18600
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018601 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018602 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18603 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18604 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080018605 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018606 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
18607
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018608 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018609 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18610 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18611 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18612 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18613 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
18614
18615 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
18616 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18617 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18618 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18619 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18620 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
18621
18622 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
18623 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18624 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18625 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18626 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18627 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
18628
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018629 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018630 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18631 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18632 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18633 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18634 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
18635
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018636 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018637 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18638 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18639 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18640 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
18641
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018642 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018643 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18644 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18645 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18646 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
18647
18648 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18649 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
18650
18651 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18652 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18653 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18654 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018655 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018656 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018657 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018658 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
18659 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
18660
18661 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18662 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18663 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18664 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18665 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
18666 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18667 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
18668 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
18669 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
18670 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18671
18672 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18673 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18674 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18675 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18676
18677 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18678 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18679 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18680 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18681
18682 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18683 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18684 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18685 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18686
18687 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18688 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18689 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18690 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18691
18692 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18693 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18694 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18695 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18696
18697 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18698 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18699 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18700 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18701
18702 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18703 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18704 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18705 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18706
Laxminath Kasam38070be2017-08-17 18:21:59 +053018707 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18708 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18709 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18710 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18711 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
18712 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18713 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
18714 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
18715 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
18716 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070018717
18718 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18719 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18720 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18721 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18722
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018723 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18724 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18725 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18726 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18727
18728 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18729 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18730 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18731 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18732
18733 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18734 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18735 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18736 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18737
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018738 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18739 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18740 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18741 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18742
18743 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18744 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18745 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18746 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080018747
18748 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18749 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18750 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18751 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18752 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18753 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18754 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18755 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18756
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018757 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
18758 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
18759 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
18760 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
18761 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
18762 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
18763 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
18764 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053018765 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053018766 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018767 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
18768 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
18769 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018770 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
18771 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018772
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018773 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
18774 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
18775 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
18776 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
18777 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
18778 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
18779 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
18780 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
18781 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
18782 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
18783 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
18784 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
18785 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
18786 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
18787 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018788 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018789 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
18790 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
18791
18792 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
18793 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
18794 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
18795 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
18796 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
18797 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
18798 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
18799 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
18800 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
18801 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
18802 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
18803 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
18804 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
18805 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
18806 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018807 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018808 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
18809
18810 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
18811 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
18812 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
18813 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
18814 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
18815 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
18816 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
18817 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
18818 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
18819 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
18820 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
18821 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
18822 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
18823 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018824 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018825 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
18826 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
18827
18828 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
18829 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
18830 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
18831 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
18832 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
18833 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
18834 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
18835 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
18836 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
18837 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
18838 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
18839 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
18840 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
18841 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
18842 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
18843
18844 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18845 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18846 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18847 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18848 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18849 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18850 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18851 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053018852 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18853 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018854 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
18855
18856 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18857 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18858 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18859 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18860 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18861 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18862 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18863 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053018864 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18865 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018866 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
18867
18868
18869 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18870 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18871 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18872 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18873 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18874 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18875 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18876 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053018877 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18878 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018879 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
18880
18881
18882 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18883 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18884 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18885 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18886 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18887 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18888 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18889 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053018890 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18891 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018892 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
18893
18894 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18895 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18896 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18897 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18898 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18899 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18900 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18901 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053018902 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18903 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018904 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
18905
18906 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18907 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18908 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18909 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18910 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18911 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053018912 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18913 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018914 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
18915
18916 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18917 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18918 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18919 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18920 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18921 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053018922 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18923 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018924 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
18925
18926 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18927 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18928 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18929 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18930 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18931 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053018932 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
18933 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018934 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
18935
18936
18937 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
18938 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
18939 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
18940 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
18941 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
18942 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
18943 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
18944 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
18945 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
18946 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
18947 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018948 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018949 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
18950 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
18951 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
18952 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
18953 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
18954 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
18955
18956 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
18957 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
18958 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
18959 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
18960 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
18961 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
18962 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
18963 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
18964 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
18965 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
18966 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
18967 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018968 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
18969 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018970 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018971 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018972 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018973 {"MI2S_RX", NULL, "MI2S_DL_HL"},
18974 {"MI2S_UL_HL", NULL, "MI2S_TX"},
18975 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
18976 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
18977
18978 /* connect to INT4_MI2S_DL_HL since same pcm_id */
18979 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
18980 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
18981 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
18982 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
18983 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
18984 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
18985 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
18986 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
18987 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
18988 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
18989
18990 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
18991 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053018992 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
18993 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018994 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
18995 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
18996 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
18997 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
18998 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
18999 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
19000 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
19001 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
19002 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
19003 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
19004
19005 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
19006 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
19007 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
19008 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
19009 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
19010 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
19011 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
19012 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
19013 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
19014 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
19015 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
19016 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
19017 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
19018 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
19019 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
19020 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
19021 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
19022 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
19023 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
19024 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
19025 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
19026 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
19027 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
19028 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
19029 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
19030 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
19031 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
19032 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
19033 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
19034 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
19035 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
19036 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053019037 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
19038 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
19039 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
19040 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
19041 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
19042 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
19043 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
19044 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019045
19046 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19047 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19048 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19049 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19050 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19051 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19052 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19053 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19054 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
19055 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
19056 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
19057 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
19058 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19059 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19060 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19061 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019062 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19063 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19064 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19065 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019066 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
19067
19068 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19069 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19070 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19071 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19072 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19073 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19074 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19075 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19076 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
19077 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
19078 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
19079 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
19080 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19081 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19082 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19083 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019084 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19085 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19086 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19087 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019088 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
19089
19090 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19091 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19092 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19093 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19094 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19095 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19096 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19097 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19098 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
19099 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
19100 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
19101 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
19102 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19103 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19104 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19105 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019106 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19107 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19108 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19109 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019110 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
19111
19112 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19113 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19114 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19115 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19116 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19117 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19118 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19119 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19120 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
19121 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
19122 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
19123 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
19124 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19125 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19126 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19127 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019128 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19129 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19130 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19131 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019132 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
19133
19134 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19135 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19136 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19137 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19138 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19139 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19140 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19141 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19142 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
19143 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
19144 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
19145 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
19146 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19147 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19148 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19149 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019150 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19151 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19152 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19153 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019154 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
19155
19156 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19157 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19158 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19159 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19160 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19161 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19162 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19163 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19164 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
19165 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
19166 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
19167 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
19168 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19169 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19170 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19171 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019172 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19173 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19174 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19175 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019176 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
19177
19178 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19179 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19180 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19181 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19182 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19183 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19184 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19185 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19186 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
19187 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
19188 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
19189 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
19190 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19191 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19192 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19193 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019194 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19195 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19196 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19197 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019198 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
19199
19200 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19201 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19202 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19203 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19204 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19205 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19206 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19207 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19208 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
19209 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
19210 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
19211 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
19212 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19213 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19214 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19215 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019216 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19217 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19218 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19219 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019220 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
19221
19222 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19223 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19224 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19225 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19226 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19227 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19228 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19229 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19230 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19231 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19232 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19233 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19234 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19235 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19236 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19237 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019238 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19239 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19240 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19241 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019242 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
19243
19244 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19245 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19246 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19247 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19248 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19249 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19250 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19251 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19252 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19253 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19254 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19255 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19256 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19257 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19258 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19259 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019260 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19261 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19262 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19263 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019264 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
19265
19266 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19267 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19268 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19269 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19270 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19271 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19272 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19273 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19274 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19275 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19276 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19277 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19278 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19279 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19280 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19281 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019282 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19283 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19284 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19285 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019286 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
19287
19288 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19289 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19290 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19291 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19292 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19293 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19294 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19295 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19296 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19297 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19298 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19299 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19300 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19301 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19302 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19303 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019304 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19305 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19306 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19307 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019308 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
19309
19310 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19311 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19312 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19313 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19314 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19315 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19316 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19317 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19318 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19319 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19320 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19321 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19322 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19323 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19324 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19325 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019326 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19327 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19328 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19329 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019330 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
19331
19332 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19333 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19334 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19335 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19336 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19337 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19338 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19339 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19340 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19341 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19342 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19343 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19344 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19345 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19346 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19347 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019348 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19349 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19350 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19351 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019352 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
19353
19354 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19355 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19356 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19357 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19358 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19359 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19360 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19361 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19362 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19363 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19364 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19365 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19366 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19367 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19368 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19369 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019370 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19371 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19372 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19373 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019374 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
19375
19376 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19377 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19378 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19379 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19380 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19381 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19382 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19383 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19384 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19385 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19386 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19387 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19388 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19389 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19390 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19391 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019392 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19393 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19394 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19395 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019396 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
19397
Rohit Kumara5077932017-09-10 22:05:05 +053019398 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19399 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19400 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19401 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19402 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19403 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19404 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19405 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19406 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19407 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19408 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19409 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19410 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19411 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19412 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19413 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
19414 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19415 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19416 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19417 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053019418 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053019419
19420 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19421 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19422 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19423 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19424 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19425 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19426 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19427 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19428 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19429 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19430 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19431 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19432 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19433 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19434 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19435 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
19436 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19437 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19438 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19439 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053019440 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053019441
19442 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19443 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19444 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19445 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19446 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19447 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19448 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19449 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19450 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19451 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19452 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19453 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19454 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19455 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19456 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19457 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
19458 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19459 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19460 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19461 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053019462 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053019463
19464 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19465 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19466 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19467 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19468 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19469 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19470 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19471 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19472 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
19473 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
19474 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
19475 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
19476 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
19477 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
19478 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
19479 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
19480 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
19481 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
19482 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
19483 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053019484 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053019485
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019486 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19487 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19488 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19489 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019490 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019491 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19492 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19493 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19494 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19495 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19496 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
19497
19498 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19499 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19500 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19501 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019502 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019503 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19504 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19505 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19506 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19507 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19508 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
19509
19510 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19511 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19512 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19513 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19514 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19515 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19516 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19517 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
19518 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019519 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019520 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19521 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19522 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19523 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19524 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019525 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019526 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19527 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
19528 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19529 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19530 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
19531 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
19532 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
19533 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
19534 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
19535 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
19536
19537
19538 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19539 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19540 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19541 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19542 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080019543 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019544 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
19545
19546 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19547 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19548 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080019549 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019550 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
19551
19552 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19553 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
19554 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19555 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
19556
19557 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19558 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
19559 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19560 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
19561
Rohit Kumara5077932017-09-10 22:05:05 +053019562 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19563 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
19564 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19565 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
19566
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019567 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
19568 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19569 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19570 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
19571 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19572 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19573 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
19574 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019575 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019576 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
19577 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19578 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19579 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19580 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19581 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19582 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
19583 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19584 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19585 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
19586 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
19587
19588 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
19589 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19590 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
19591 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19592 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19593 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
19594 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19595 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19596 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
19597 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19598 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19599 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
19600
19601 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
19602 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19603 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
19604 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19605 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19606 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
19607 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19608 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19609 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
19610 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19611 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19612 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
19613
kunleizdf5a00a2017-11-27 15:27:36 +080019614 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
19615 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019616 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080019617
19618 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
19619 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019620 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080019621
19622 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
19623 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019624 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
19625
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019626 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
19627 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019628 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
19629 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
19630 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
19631 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
19632
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019633 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
19634 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019635 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
19636 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
19637 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
19638 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
19639
19640 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19641 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19642 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19643 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
19644 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19645 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19646 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
19647 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
19648 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19649 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
19650 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
19651 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
19652 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
19653
19654 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19655 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19656 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19657 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19658 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19659 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19660 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19661 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19662 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19663 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19664 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19665 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19666 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
19667
19668 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19669 {"HDMI", NULL, "HDMI_RX Port Mixer"},
19670
19671 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19672 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
19673
Karthikeyan Mani57550082018-05-03 18:43:58 -070019674 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
19675 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
19676
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019677 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19678 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
19679
19680 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19681 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19682 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
19683
19684 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19685 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19686 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19687 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019688 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019689 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19690 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19691 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19692 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080019693 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019694 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
19695
19696 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19697 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19698 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19699 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019700 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019701 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19702 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19703 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080019704 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019705 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
19706
19707 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19708 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19709 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19710 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019711 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019712 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19713 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19714 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
19715
19716 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19717 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19718 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19719 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019720 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019721 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19722 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19723 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19724 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19725 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
19726
Rohit Kumara5077932017-09-10 22:05:05 +053019727 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19728 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19729 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19730 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19731 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
19732 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19733 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19734 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
19735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019736 /* Backend Enablement */
19737
19738 {"BE_OUT", NULL, "PRI_I2S_RX"},
19739 {"BE_OUT", NULL, "SEC_I2S_RX"},
19740 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
19741 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
19742 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
19743 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19744 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
19745 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
19746 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
19747 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
19748 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
19749 {"BE_OUT", NULL, "USB_AUDIO_RX"},
19750 {"BE_OUT", NULL, "HDMI"},
19751 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070019752 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019753 {"BE_OUT", NULL, "SPDIF_RX"},
19754 {"BE_OUT", NULL, "MI2S_RX"},
19755 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
19756 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
19757 {"BE_OUT", NULL, "TERT_MI2S_RX"},
19758 {"BE_OUT", NULL, "SEC_MI2S_RX"},
19759 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
19760 {"BE_OUT", NULL, "PRI_MI2S_RX"},
19761 {"BE_OUT", NULL, "INT0_MI2S_RX"},
19762 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019763 {"BE_OUT", NULL, "INT2_MI2S_RX"},
19764 {"BE_OUT", NULL, "INT3_MI2S_RX"},
19765 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019766 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
19767 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
19768 {"BE_OUT", NULL, "INT_FM_RX"},
19769 {"BE_OUT", NULL, "PCM_RX"},
19770 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19771 {"BE_OUT", NULL, "AUX_PCM_RX"},
19772 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
19773 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
19774 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019775 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019776 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
19777 {"BE_OUT", NULL, "INT_FM_RX"},
19778 {"BE_OUT", NULL, "PCM_RX"},
19779 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19780 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
19781 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
19782 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
19783 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
19784 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
19785 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
19786 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
19787 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
19788 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
19789 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
19790 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
19791 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
19792 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
19793 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
19794 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
19795 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
19796 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
19797 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
19798 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019799 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
19800 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
19801 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
19802 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019803 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
19804 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019805
19806 {"PRI_I2S_TX", NULL, "BE_IN"},
19807 {"MI2S_TX", NULL, "BE_IN"},
19808 {"QUAT_MI2S_TX", NULL, "BE_IN"},
19809 {"QUIN_MI2S_TX", NULL, "BE_IN"},
19810 {"PRI_MI2S_TX", NULL, "BE_IN"},
19811 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019812 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019813 {"INT2_MI2S_TX", NULL, "BE_IN"},
19814 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019815 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019816 {"INT5_MI2S_TX", NULL, "BE_IN"},
19817 {"SEC_MI2S_TX", NULL, "BE_IN"},
19818 {"SENARY_MI2S_TX", NULL, "BE_IN" },
19819 {"SLIMBUS_0_TX", NULL, "BE_IN" },
19820 {"SLIMBUS_1_TX", NULL, "BE_IN" },
19821 {"SLIMBUS_3_TX", NULL, "BE_IN" },
19822 {"SLIMBUS_4_TX", NULL, "BE_IN" },
19823 {"SLIMBUS_5_TX", NULL, "BE_IN" },
19824 {"SLIMBUS_6_TX", NULL, "BE_IN" },
19825 {"SLIMBUS_7_TX", NULL, "BE_IN" },
19826 {"SLIMBUS_8_TX", NULL, "BE_IN" },
19827 {"USB_AUDIO_TX", NULL, "BE_IN" },
19828 {"INT_BT_SCO_TX", NULL, "BE_IN"},
19829 {"INT_FM_TX", NULL, "BE_IN"},
19830 {"PCM_TX", NULL, "BE_IN"},
19831 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19832 {"BE_OUT", NULL, "STUB_RX"},
19833 {"STUB_TX", NULL, "BE_IN"},
19834 {"STUB_1_TX", NULL, "BE_IN"},
19835 {"BE_OUT", NULL, "AUX_PCM_RX"},
19836 {"AUX_PCM_TX", NULL, "BE_IN"},
19837 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
19838 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
19839 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053019840 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019841 {"INCALL_RECORD_TX", NULL, "BE_IN"},
19842 {"INCALL_RECORD_RX", NULL, "BE_IN"},
19843 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
19844 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019845 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
19846 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019847 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
19848 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
19849 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
19850 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
19851 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019852 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
19853 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019854 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
19855 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
19856 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
19857 {"PRI_TDM_TX_0", NULL, "BE_IN"},
19858 {"PRI_TDM_TX_1", NULL, "BE_IN"},
19859 {"PRI_TDM_TX_2", NULL, "BE_IN"},
19860 {"PRI_TDM_TX_3", NULL, "BE_IN"},
19861 {"SEC_TDM_TX_0", NULL, "BE_IN"},
19862 {"SEC_TDM_TX_1", NULL, "BE_IN"},
19863 {"SEC_TDM_TX_2", NULL, "BE_IN"},
19864 {"SEC_TDM_TX_3", NULL, "BE_IN"},
19865 {"TERT_TDM_TX_0", NULL, "BE_IN"},
19866 {"TERT_TDM_TX_1", NULL, "BE_IN"},
19867 {"TERT_TDM_TX_2", NULL, "BE_IN"},
19868 {"TERT_TDM_TX_3", NULL, "BE_IN"},
19869 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
19870 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
19871 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
19872 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053019873 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
19874 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
19875 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
19876 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019877 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
19878 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
19879 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
19880 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
19881 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
19882
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019883};
19884
19885static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
19886 struct snd_pcm_hw_params *params)
19887{
19888 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19889 unsigned int be_id = rtd->dai_link->id;
19890
19891 if (be_id >= MSM_BACKEND_DAI_MAX) {
19892 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19893 return -EINVAL;
19894 }
19895
19896 mutex_lock(&routing_lock);
19897 msm_bedais[be_id].sample_rate = params_rate(params);
19898 msm_bedais[be_id].channel = params_channels(params);
19899 msm_bedais[be_id].format = params_format(params);
19900 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
19901 __func__, msm_bedais[be_id].sample_rate,
19902 msm_bedais[be_id].format, be_id);
19903 mutex_unlock(&routing_lock);
19904 return 0;
19905}
19906
19907static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
19908{
19909 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19910 unsigned int be_id = rtd->dai_link->id;
19911 int i, session_type, path_type, topology;
19912 struct msm_pcm_routing_bdai_data *bedai;
19913 struct msm_pcm_routing_fdai_data *fdai;
19914
19915 pr_debug("%s: substream->pcm->id:%s\n",
19916 __func__, substream->pcm->id);
19917
19918 if (be_id >= MSM_BACKEND_DAI_MAX) {
19919 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19920 return -EINVAL;
19921 }
19922
19923 bedai = &msm_bedais[be_id];
19924 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
19925 0 : 1);
19926 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
19927 path_type = ADM_PATH_PLAYBACK;
19928 else
19929 path_type = ADM_PATH_LIVE_REC;
19930
19931 mutex_lock(&routing_lock);
19932 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19933 if (!is_mm_lsm_fe_id(i))
19934 continue;
19935 fdai = &fe_dai_map[i][session_type];
19936 if (fdai->strm_id != INVALID_SESSION) {
19937 int idx;
19938 int port_id;
19939 unsigned long copp =
19940 session_copp_map[i][session_type][be_id];
19941 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
19942 if (test_bit(idx, &copp))
19943 break;
19944 fdai->be_srate = bedai->sample_rate;
19945 port_id = bedai->port_id;
19946 topology = adm_get_topology_for_port_copp_idx(port_id,
19947 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070019948 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019949 adm_close(bedai->port_id, fdai->perf_mode, idx);
19950 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
19951 __func__, copp, i, session_type, be_id,
19952 topology);
19953 clear_bit(idx,
19954 &session_copp_map[i][session_type][be_id]);
19955 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
19956 (bedai->passthr_mode[i] == LEGACY_PCM))
19957 msm_pcm_routing_deinit_pp(bedai->port_id,
19958 topology);
19959 }
19960 }
19961
19962 bedai->active = 0;
19963 bedai->sample_rate = 0;
19964 bedai->channel = 0;
19965 for (i = 0; i < MSM_FRONTEND_DAI_MAX; i++) {
19966 if (bedai->passthr_mode[i] != LISTEN)
19967 bedai->passthr_mode[i] = LEGACY_PCM;
19968 }
19969 mutex_unlock(&routing_lock);
19970
19971 return 0;
19972}
19973
19974static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
19975{
19976 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19977 unsigned int be_id = rtd->dai_link->id;
19978 int i, path_type, topology;
19979 int session_type = INVALID_SESSION;
19980 struct msm_pcm_routing_bdai_data *bedai;
19981 u32 channels, sample_rate;
19982 uint16_t bits_per_sample = 16, voc_path_type;
19983 struct msm_pcm_routing_fdai_data *fdai;
19984 u32 session_id;
19985 struct media_format_info voc_be_media_format;
19986 bool is_lsm;
19987
19988 pr_debug("%s: substream->pcm->id:%s\n",
19989 __func__, substream->pcm->id);
19990
19991 if (be_id >= MSM_BACKEND_DAI_MAX) {
19992 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19993 return -EINVAL;
19994 }
19995
19996 bedai = &msm_bedais[be_id];
19997
19998 mutex_lock(&routing_lock);
19999 if (bedai->active == 1)
20000 goto done; /* Ignore prepare if back-end already active */
20001
20002 /* AFE port is not active at this point. However, still
20003 * go ahead setting active flag under the notion that
20004 * QDSP6 is able to handle ADM starting before AFE port
20005 * is started.
20006 */
20007 bedai->active = 1;
20008
20009 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
20010 if (!(is_mm_lsm_fe_id(i) &&
20011 route_check_fe_id_adm_support(i)))
20012 continue;
20013
20014 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
20015 if (bedai->passthr_mode[i] != LEGACY_PCM)
20016 path_type = ADM_PATH_COMPRESSED_RX;
20017 else
20018 path_type = ADM_PATH_PLAYBACK;
20019 session_type = SESSION_TYPE_RX;
20020 } else {
20021 path_type = ADM_PATH_LIVE_REC;
20022 session_type = SESSION_TYPE_TX;
20023 }
20024
20025 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
20026 (i <= MSM_FRONTEND_DAI_LSM8);
20027 fdai = &fe_dai_map[i][session_type];
20028 if (fdai->strm_id != INVALID_SESSION) {
20029 int app_type, app_type_idx, copp_idx, acdb_dev_id;
20030
20031 if (session_type == SESSION_TYPE_TX &&
20032 fdai->be_srate &&
20033 (fdai->be_srate != bedai->sample_rate)) {
20034 pr_debug("%s: flush strm %d diff BE rates\n",
20035 __func__,
20036 fdai->strm_id);
20037
20038 if (fdai->event_info.event_func)
20039 fdai->event_info.event_func(
20040 MSM_PCM_RT_EVT_BUF_RECFG,
20041 fdai->event_info.priv_data);
20042 fdai->be_srate = 0; /* might not need it */
20043 }
20044 bits_per_sample = msm_routing_get_bit_width(
20045 bedai->format);
20046
20047 app_type =
20048 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
20049 if (app_type && is_lsm) {
20050 app_type_idx =
20051 msm_pcm_routing_get_lsm_app_type_idx(app_type);
20052 sample_rate =
20053 fe_dai_app_type_cfg[i][session_type][be_id]
20054 .sample_rate;
20055 bits_per_sample =
20056 lsm_app_type_cfg[app_type_idx].bit_width;
20057 } else if (app_type) {
20058 app_type_idx =
20059 msm_pcm_routing_get_app_type_idx(app_type);
20060 sample_rate =
20061 fe_dai_app_type_cfg[i][session_type]
20062 [be_id].sample_rate;
20063 bits_per_sample =
20064 app_type_cfg[app_type_idx].bit_width;
20065 } else
20066 sample_rate = bedai->sample_rate;
20067 /*
20068 * check if ADM needs to be configured with different
20069 * channel mapping than backend
20070 */
20071 if (!bedai->adm_override_ch)
20072 channels = bedai->channel;
20073 else
20074 channels = bedai->adm_override_ch;
20075 acdb_dev_id =
20076 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
20077 topology = msm_routing_get_adm_topology(i, session_type,
20078 be_id);
20079 copp_idx = adm_open(bedai->port_id, path_type,
20080 sample_rate, channels, topology,
20081 fdai->perf_mode, bits_per_sample,
20082 app_type, acdb_dev_id);
20083 if ((copp_idx < 0) ||
20084 (copp_idx >= MAX_COPPS_PER_PORT)) {
20085 pr_err("%s: adm open failed\n", __func__);
20086 mutex_unlock(&routing_lock);
20087 return -EINVAL;
20088 }
20089 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
20090 __func__, i, session_type, be_id);
20091 set_bit(copp_idx,
20092 &session_copp_map[i][session_type][be_id]);
20093
20094 if (msm_is_resample_needed(
20095 sample_rate,
20096 bedai->sample_rate))
20097 adm_copp_mfc_cfg(
20098 bedai->port_id, copp_idx,
20099 bedai->sample_rate);
20100
20101 msm_pcm_routing_build_matrix(i, session_type, path_type,
20102 fdai->perf_mode,
20103 bedai->passthr_mode[i]);
20104 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
20105 (bedai->passthr_mode[i] == LEGACY_PCM))
20106 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
20107 topology, channels);
20108 }
20109 }
20110
20111 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
20112 session_id = msm_pcm_routing_get_voc_sessionid(i);
20113 if (session_id) {
20114 pr_debug("%s voice session_id: 0x%x\n", __func__,
20115 session_id);
20116
20117 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
20118 voc_path_type = RX_PATH;
20119 else
20120 voc_path_type = TX_PATH;
20121
20122 voc_set_route_flag(session_id, voc_path_type, 1);
20123
20124 memset(&voc_be_media_format, 0,
20125 sizeof(struct media_format_info));
20126
20127 voc_be_media_format.port_id = bedai->port_id;
20128 voc_be_media_format.num_channels = bedai->channel;
20129 voc_be_media_format.sample_rate = bedai->sample_rate;
20130 voc_be_media_format.bits_per_sample = bedai->format;
20131 /* Defaulting this to 1 for voice call usecases */
20132 voc_be_media_format.channel_mapping[0] = 1;
20133
20134 voc_set_device_config(session_id, voc_path_type,
20135 &voc_be_media_format);
20136
20137 if (voc_get_route_flag(session_id, RX_PATH) &&
20138 voc_get_route_flag(session_id, TX_PATH))
20139 voc_enable_device(session_id);
20140 }
20141 }
20142
20143 /* Check if backend is an external ec ref port and set as needed */
20144 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
20145
20146 memset(&voc_be_media_format, 0,
20147 sizeof(struct media_format_info));
20148
20149 /* Get format info for ec ref port from msm_bedais[] */
20150 voc_be_media_format.port_id = bedai->port_id;
20151 voc_be_media_format.num_channels = bedai->channel;
20152 voc_be_media_format.bits_per_sample = bedai->format;
20153 voc_be_media_format.sample_rate = bedai->sample_rate;
20154 /* Defaulting this to 1 for voice call usecases */
20155 voc_be_media_format.channel_mapping[0] = 1;
20156 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
20157 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
20158 __func__, voc_be_media_format.port_id,
20159 voc_be_media_format.num_channels,
20160 voc_be_media_format.bits_per_sample,
20161 voc_be_media_format.sample_rate);
20162 }
20163
20164done:
20165 mutex_unlock(&routing_lock);
20166
20167 return 0;
20168}
20169
20170static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
20171 int fe_id)
20172{
20173 int index, topo_id, be_idx;
20174 unsigned long pp_config = 0;
20175 bool mute_on;
20176 int latency;
20177 bool compr_passthr_mode = true;
20178
20179 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
20180
20181 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
20182 pr_err("%s: Device pp params on invalid port %d\n",
20183 __func__, port_id);
20184 return -EINVAL;
20185 }
20186
20187 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
20188 if (port_id == msm_bedais[be_idx].port_id)
20189 break;
20190 }
20191
20192 if (be_idx >= MSM_BACKEND_DAI_MAX) {
20193 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
20194 return -EINVAL;
20195 }
20196
20197 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
20198 if (msm_bedais_pp_params[index].port_id == port_id)
20199 break;
20200 }
20201 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
20202 pr_err("%s: Invalid backend pp params index %d\n",
20203 __func__, index);
20204 return -EINVAL;
20205 }
20206
20207 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
20208 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
20209 pr_err("%s: Invalid passthrough topology 0x%x\n",
20210 __func__, topo_id);
20211 return -EINVAL;
20212 }
20213
20214 if ((msm_bedais[be_idx].passthr_mode[fe_id] == LEGACY_PCM) ||
20215 (msm_bedais[be_idx].passthr_mode[fe_id] == LISTEN))
20216 compr_passthr_mode = false;
20217
20218 pp_config = msm_bedais_pp_params[index].pp_params_config;
20219 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
20220 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
20221 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
20222 mute_on = msm_bedais_pp_params[index].mute_on;
20223 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
20224 adm_send_compressed_device_mute(port_id,
20225 copp_idx,
20226 mute_on);
20227 }
20228 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
20229 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
20230 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
20231 &pp_config);
20232 latency = msm_bedais_pp_params[index].latency;
20233 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
20234 adm_send_compressed_device_latency(port_id,
20235 copp_idx,
20236 latency);
20237 }
20238 return 0;
20239}
20240
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070020241static uint32_t msm_routing_get_topology(size_t data_size, void *data)
20242{
20243 uint32_t topology = NULL_COPP_TOPOLOGY;
20244 void *cal_info = NULL;
20245 uint32_t size = 0;
20246
20247 /* Retrieve cal_info size from cal data*/
20248 size = data_size - sizeof(struct audio_cal_type_basic);
20249 cal_info = kzalloc(size, GFP_KERNEL);
20250
20251 if (!cal_info)
20252 goto done;
20253
20254 memcpy(cal_info,
20255 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
20256
20257 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
20258 kfree(cal_info);
20259 cal_info = NULL;
20260
20261done:
20262 pr_debug("%s: Using topology %d\n", __func__, topology);
20263
20264 return topology;
20265}
20266
20267static void msm_routing_load_topology(size_t data_size, void *data)
20268{
20269 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053020270 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070020271
20272 topology_id = msm_routing_get_topology(data_size, data);
20273 if (topology_id != NULL_COPP_TOPOLOGY)
20274 ret = q6core_load_unload_topo_modules(topology_id,
20275 CORE_LOAD_TOPOLOGY);
20276 if (ret < 0)
20277 pr_debug("%s %d load topology failed\n",
20278 __func__, topology_id);
20279
20280}
20281
20282static void msm_routing_unload_topology(uint32_t topology_id)
20283{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053020284 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070020285
20286 if (topology_id != NULL_COPP_TOPOLOGY)
20287 ret = q6core_load_unload_topo_modules(topology_id,
20288 CORE_UNLOAD_TOPOLOGY);
20289 if (ret < 0)
20290 pr_debug("%s %d unload topology failed\n",
20291 __func__, topology_id);
20292
20293}
20294
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020295static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
20296 struct snd_ctl_elem_value *ucontrol)
20297{
20298 int pp_id = ucontrol->value.integer.value[0];
20299 int port_id = 0;
20300 int index, be_idx, i, topo_id, idx;
20301 bool mute;
20302 int latency;
20303 bool compr_passthr_mode = true;
20304
20305 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
20306
20307 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
20308 port_id = msm_bedais[be_idx].port_id;
20309 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
20310 break;
20311 }
20312
20313 if (be_idx >= MSM_BACKEND_DAI_MAX) {
20314 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
20315 return -EINVAL;
20316 }
20317
20318 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
20319 if (msm_bedais_pp_params[index].port_id == port_id)
20320 break;
20321 }
20322 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
20323 pr_err("%s: Invalid pp params backend index %d\n",
20324 __func__, index);
20325 return -EINVAL;
20326 }
20327
20328 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
20329 MSM_FRONTEND_DAI_MM_SIZE) {
20330 if ((msm_bedais[be_idx].passthr_mode[i] == LEGACY_PCM) ||
20331 (msm_bedais[be_idx].passthr_mode[i] == LISTEN))
20332 compr_passthr_mode = false;
20333
20334 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
20335 unsigned long copp =
20336 session_copp_map[i]
20337 [SESSION_TYPE_RX][be_idx];
20338 if (!test_bit(idx, &copp))
20339 continue;
20340 topo_id = adm_get_topology_for_port_copp_idx(port_id,
20341 idx);
20342 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
20343 continue;
20344 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
20345 __func__, port_id, copp, msm_bedais[be_idx].active,
20346 msm_bedais[be_idx].passthr_mode[i]);
20347 switch (pp_id) {
20348 case ADM_PP_PARAM_MUTE_ID:
20349 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
20350 mute = ucontrol->value.integer.value[1] ? true : false;
20351 msm_bedais_pp_params[index].mute_on = mute;
20352 set_bit(ADM_PP_PARAM_MUTE_BIT,
20353 &msm_bedais_pp_params[index].pp_params_config);
20354 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
20355 adm_send_compressed_device_mute(port_id,
20356 idx, mute);
20357 break;
20358 case ADM_PP_PARAM_LATENCY_ID:
20359 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
20360 msm_bedais_pp_params[index].latency =
20361 ucontrol->value.integer.value[1];
20362 set_bit(ADM_PP_PARAM_LATENCY_BIT,
20363 &msm_bedais_pp_params[index].pp_params_config);
20364 latency = msm_bedais_pp_params[index].latency =
20365 ucontrol->value.integer.value[1];
20366 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
20367 adm_send_compressed_device_latency(port_id,
20368 idx, latency);
20369 break;
20370 default:
20371 pr_info("%s, device pp param %d not supported\n",
20372 __func__, pp_id);
20373 break;
20374 }
20375 }
20376 }
20377 return 0;
20378}
20379
20380static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
20381 struct snd_ctl_elem_value *ucontrol)
20382{
20383 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
20384 return 0;
20385}
20386
20387static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
20388 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
20389 0, 3, msm_routing_get_device_pp_params_mixer,
20390 msm_routing_put_device_pp_params_mixer),
20391};
20392
20393static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
20394 struct snd_ctl_elem_value *ucontrol)
20395{
20396 ucontrol->value.integer.value[0] =
20397 core_get_license_status(ASM_MEDIA_FMT_APTX);
20398 pr_debug("%s: status %ld\n", __func__,
20399 ucontrol->value.integer.value[0]);
20400 return 0;
20401}
20402
20403static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
20404 struct snd_ctl_elem_value *ucontrol)
20405{
20406 int32_t status = 0;
20407
20408 status = core_set_license(ucontrol->value.integer.value[0],
20409 APTX_CLASSIC_DEC_LICENSE_ID);
20410 pr_debug("%s: status %d\n", __func__, status);
20411 return status;
20412}
20413
20414static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
20415 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
20416 0xFFFF, 0, msm_aptx_dec_license_control_get,
20417 msm_aptx_dec_license_control_put),
20418};
20419
20420static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
20421 struct snd_ctl_elem_info *uinfo)
20422{
20423 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
20424 uinfo->count = sizeof(be_dai_name_table);
20425 return 0;
20426}
20427
20428static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
20429 unsigned int __user *bytes,
20430 unsigned int size)
20431{
20432 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053020433 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020434
20435 if (size < sizeof(be_dai_name_table)) {
20436 pr_err("%s: invalid size %d requested, returning\n",
20437 __func__, size);
20438 ret = -EINVAL;
20439 goto done;
20440 }
20441
20442 /*
20443 * Fill be_dai_name_table from msm_bedais table to reduce code changes
20444 * needed when adding new backends
20445 */
20446 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
20447 be_dai_name_table[i].be_id = i;
20448 strlcpy(be_dai_name_table[i].be_name,
20449 msm_bedais[i].name,
20450 LPASS_BE_NAME_MAX_LENGTH);
20451 }
20452
20453 ret = copy_to_user(bytes, &be_dai_name_table,
20454 sizeof(be_dai_name_table));
20455 if (ret) {
20456 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
20457 ret = -EFAULT;
20458 }
20459
20460done:
20461 return ret;
20462}
20463
20464static const struct snd_kcontrol_new
20465 msm_routing_be_dai_name_table_mixer_controls[] = {
20466 {
20467 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
20468 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
20469 .info = msm_routing_be_dai_name_table_info,
20470 .name = "Backend DAI Name Table",
20471 .tlv.c = snd_soc_bytes_tlv_callback,
20472 .private_value = (unsigned long) &(struct soc_bytes_ext) {
20473 .max = sizeof(be_dai_name_table),
20474 .get = msm_routing_be_dai_name_table_tlv_get,
20475 }
20476 },
20477};
20478
20479static int msm_routing_stereo_channel_reverse_control_get(
20480 struct snd_kcontrol *kcontrol,
20481 struct snd_ctl_elem_value *ucontrol)
20482{
20483 ucontrol->value.integer.value[0] = swap_ch;
20484 pr_debug("%s: Swap channel value: %ld\n", __func__,
20485 ucontrol->value.integer.value[0]);
20486 return 0;
20487}
20488
20489static int msm_routing_stereo_channel_reverse_control_put(
20490 struct snd_kcontrol *kcontrol,
20491 struct snd_ctl_elem_value *ucontrol)
20492{
20493 int i, idx, be_index, port_id;
20494 int ret = 0;
20495 unsigned long copp;
20496
20497 pr_debug("%s Swap channel value:%ld\n", __func__,
20498 ucontrol->value.integer.value[0]);
20499
20500 swap_ch = ucontrol->value.integer.value[0];
20501
20502 mutex_lock(&routing_lock);
20503 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
20504 port_id = msm_bedais[be_index].port_id;
20505 if (!msm_bedais[be_index].active)
20506 continue;
20507
20508 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
20509 MSM_FRONTEND_DAI_MM_SIZE) {
20510 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
20511 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
20512 if (!test_bit(idx, &copp))
20513 continue;
20514
20515 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
20516 __func__, port_id, idx);
20517 ret = adm_swap_speaker_channels(
20518 port_id, idx,
20519 msm_bedais[be_index].sample_rate,
20520 swap_ch);
20521 if (ret) {
20522 pr_err("%s:Swap_channel failed, err=%d\n",
20523 __func__, ret);
20524 goto done;
20525 }
20526 }
20527 }
20528 }
20529done:
20530 mutex_unlock(&routing_lock);
20531 return ret;
20532}
20533
20534static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
20535 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
20536 1, 0, msm_routing_stereo_channel_reverse_control_get,
20537 msm_routing_stereo_channel_reverse_control_put),
20538};
20539
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080020540static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
20541 struct snd_ctl_elem_info *uinfo)
20542{
20543 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
20544 uinfo->count = 1;
20545 return 0;
20546}
20547
20548static int msm_routing_instance_id_support_put(
20549 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
20550{
20551 bool supported = ucontrol->value.integer.value[0] ? true : false;
20552
20553 q6common_update_instance_id_support(supported);
20554 return 0;
20555}
20556
20557static int msm_routing_instance_id_support_get(
20558 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
20559{
20560 bool supported = false;
20561
20562 supported = q6common_is_instance_id_supported();
20563 ucontrol->value.integer.value[0] = supported ? 1 : 0;
20564
20565 return 0;
20566}
20567
20568static const struct snd_kcontrol_new
20569 msm_routing_feature_support_mixer_controls[] = {
20570 {
20571 .access = SNDRV_CTL_ELEM_ACCESS_READ |
20572 SNDRV_CTL_ELEM_ACCESS_WRITE,
20573 .info = msm_routing_instance_id_support_info,
20574 .name = "Instance ID Support",
20575 .put = msm_routing_instance_id_support_put,
20576 .get = msm_routing_instance_id_support_get,
20577 },
20578};
20579
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020580static const struct snd_pcm_ops msm_routing_pcm_ops = {
20581 .hw_params = msm_pcm_routing_hw_params,
20582 .close = msm_pcm_routing_close,
20583 .prepare = msm_pcm_routing_prepare,
20584};
20585
20586/* Not used but frame seems to require it */
20587static int msm_routing_probe(struct snd_soc_platform *platform)
20588{
20589 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
20590 ARRAY_SIZE(msm_qdsp6_widgets));
20591 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
20592 ARRAY_SIZE(intercon));
20593
20594 snd_soc_dapm_new_widgets(platform->component.dapm.card);
20595
20596 snd_soc_add_platform_controls(platform, lsm_controls,
20597 ARRAY_SIZE(lsm_controls));
20598
20599 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
20600 ARRAY_SIZE(aanc_slim_0_rx_mux));
20601
Sudheer Papothic07b37a2018-05-04 05:56:47 +053020602 snd_soc_add_platform_controls(platform, aanc_noise_level,
20603 ARRAY_SIZE(aanc_noise_level));
20604
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020605 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
20606 ARRAY_SIZE(msm_voc_session_controls));
20607
20608 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
20609 ARRAY_SIZE(app_type_cfg_controls));
20610
20611 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
20612 ARRAY_SIZE(lsm_app_type_cfg_controls));
20613
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020614 snd_soc_add_platform_controls(platform, module_cfg_controls,
20615 ARRAY_SIZE(module_cfg_controls));
20616
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020617 snd_soc_add_platform_controls(platform,
20618 stereo_to_custom_stereo_controls,
20619 ARRAY_SIZE(stereo_to_custom_stereo_controls));
20620
20621 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
20622 ARRAY_SIZE(ec_ref_param_controls));
20623
20624 snd_soc_add_platform_controls(platform, channel_mixer_controls,
20625 ARRAY_SIZE(channel_mixer_controls));
20626
20627 msm_qti_pp_add_controls(platform);
20628
20629 msm_dts_srs_tm_add_controls(platform);
20630
20631 msm_dolby_dap_add_controls(platform);
20632
20633 snd_soc_add_platform_controls(platform,
20634 use_ds1_or_ds2_controls,
20635 ARRAY_SIZE(use_ds1_or_ds2_controls));
20636
20637 snd_soc_add_platform_controls(platform,
20638 device_pp_params_mixer_controls,
20639 ARRAY_SIZE(device_pp_params_mixer_controls));
20640
20641 snd_soc_add_platform_controls(platform,
20642 msm_routing_be_dai_name_table_mixer_controls,
20643 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
20644
20645 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
20646 ARRAY_SIZE(msm_source_tracking_controls));
20647 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
20648 ARRAY_SIZE(adm_channel_config_controls));
20649
20650 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
20651 ARRAY_SIZE(aptx_dec_license_controls));
20652 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
20653 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080020654 snd_soc_add_platform_controls(
20655 platform, msm_routing_feature_support_mixer_controls,
20656 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
20657
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020658 return 0;
20659}
20660
20661int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
20662{
20663 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
20664}
20665
20666void msm_routing_pcm_free(struct snd_pcm *pcm)
20667{
20668 msm_pcm_routing_hwdep_free(pcm);
20669}
20670
20671static struct snd_soc_platform_driver msm_soc_routing_platform = {
20672 .ops = &msm_routing_pcm_ops,
20673 .probe = msm_routing_probe,
20674 .pcm_new = msm_routing_pcm_new,
20675 .pcm_free = msm_routing_pcm_free,
20676};
20677
20678static int msm_routing_pcm_probe(struct platform_device *pdev)
20679{
20680
20681 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
20682 return snd_soc_register_platform(&pdev->dev,
20683 &msm_soc_routing_platform);
20684}
20685
20686static int msm_routing_pcm_remove(struct platform_device *pdev)
20687{
20688 snd_soc_unregister_platform(&pdev->dev);
20689 return 0;
20690}
20691
20692static const struct of_device_id msm_pcm_routing_dt_match[] = {
20693 {.compatible = "qcom,msm-pcm-routing"},
20694 {}
20695};
20696MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
20697
20698static struct platform_driver msm_routing_pcm_driver = {
20699 .driver = {
20700 .name = "msm-pcm-routing",
20701 .owner = THIS_MODULE,
20702 .of_match_table = msm_pcm_routing_dt_match,
20703 },
20704 .probe = msm_routing_pcm_probe,
20705 .remove = msm_routing_pcm_remove,
20706};
20707
20708int msm_routing_check_backend_enabled(int fedai_id)
20709{
20710 int i;
20711
20712 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
20713 /* bad ID assigned in machine driver */
20714 pr_err("%s: bad MM ID\n", __func__);
20715 return 0;
20716 }
20717 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
20718 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
20719 return msm_bedais[i].active;
20720 }
20721 return 0;
20722}
20723
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020724static int get_cal_type_index(int32_t cal_type)
20725{
20726 int ret = -EINVAL;
20727
20728 switch (cal_type) {
20729 case ADM_TOPOLOGY_CAL_TYPE:
20730 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
20731 break;
20732 case ADM_LSM_TOPOLOGY_CAL_TYPE:
20733 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
20734 break;
20735 default:
20736 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
20737 }
20738 return ret;
20739}
20740
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020741static int msm_routing_set_cal(int32_t cal_type,
20742 size_t data_size, void *data)
20743{
20744 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020745 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020746 pr_debug("%s\n", __func__);
20747
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020748 cal_index = get_cal_type_index(cal_type);
20749 if (cal_index < 0) {
20750 pr_err("%s: Could not get cal index %d\n",
20751 __func__, cal_index);
20752 ret = -EINVAL;
20753 goto done;
20754 }
20755
20756 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020757 if (ret < 0) {
20758 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
20759 __func__, ret, cal_type);
20760 ret = -EINVAL;
20761 goto done;
20762 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070020763 /* Pre-load if it is ADM topology */
20764 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
20765 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
20766 msm_routing_load_topology(data_size, data);
20767 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020768done:
20769 return ret;
20770}
20771
20772static void msm_routing_delete_cal_data(void)
20773{
20774 pr_debug("%s\n", __func__);
20775
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020776 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020777}
20778
20779static int msm_routing_init_cal_data(void)
20780{
20781 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020782 struct cal_type_info cal_type_info[] = {
20783 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020784 {NULL, NULL, NULL,
20785 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020786 {NULL, NULL, cal_utils_match_buf_num} },
20787
20788 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
20789 {NULL, NULL, NULL,
20790 msm_routing_set_cal, NULL, NULL} },
20791 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020792 };
20793 pr_debug("%s\n", __func__);
20794
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020795 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
20796 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020797 if (ret < 0) {
20798 pr_err("%s: could not create cal type!\n",
20799 __func__);
20800 ret = -EINVAL;
20801 goto err;
20802 }
20803
20804 return ret;
20805err:
20806 msm_routing_delete_cal_data();
20807 return ret;
20808}
20809
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053020810int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020811{
20812 mutex_init(&routing_lock);
20813 if (msm_routing_init_cal_data())
20814 pr_err("%s: could not init cal data!\n", __func__);
20815
20816 afe_set_routing_callback(
20817 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
20818
20819 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
20820 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
20821
20822 return platform_driver_register(&msm_routing_pcm_driver);
20823}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020824
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053020825void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020826{
20827 msm_routing_delete_cal_data();
20828 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
20829 mutex_destroy(&routing_lock);
20830 platform_driver_unregister(&msm_routing_pcm_driver);
20831}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020832
20833MODULE_DESCRIPTION("MSM routing platform driver");
20834MODULE_LICENSE("GPL v2");