blob: 9e445946bbf0f46cfebe844c7f9cb0faf2bf89e1 [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"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530116#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530117
118#define LSM_FUNCTION_TEXT "LSM Function"
119static const char * const lsm_port_text[] = {
120 "None",
121 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
122 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
123 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530124 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
125 TX_CDC_DMA_TX_3_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530126};
127
128struct msm_pcm_route_bdai_pp_params {
129 u16 port_id; /* AFE port ID */
130 unsigned long pp_params_config;
131 bool mute_on;
132 int latency;
133};
134
135static struct msm_pcm_route_bdai_pp_params
136 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
137 {HDMI_RX, 0, 0, 0},
138 {DISPLAY_PORT_RX, 0, 0, 0},
139};
140
141/*
142 * The be_dai_name_table is passed to HAL so that it can specify the
143 * BE ID for the BE it wants to enable based on the name. Thus there
144 * is a matching table and structure in HAL that need to be updated
145 * if any changes to these are made.
146 */
147struct msm_pcm_route_bdai_name {
148 unsigned int be_id;
149 char be_name[LPASS_BE_NAME_MAX_LENGTH];
150};
151static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
152
153static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
154 int fe_id);
155
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700156static void msm_routing_load_topology(size_t data_size, void *data);
157static void msm_routing_unload_topology(uint32_t topology_id);
158
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530159static int msm_routing_get_bit_width(unsigned int format)
160{
161 int bit_width;
162
163 switch (format) {
164 case SNDRV_PCM_FORMAT_S32_LE:
165 bit_width = 32;
166 break;
167 case SNDRV_PCM_FORMAT_S24_LE:
168 case SNDRV_PCM_FORMAT_S24_3LE:
169 bit_width = 24;
170 break;
171 case SNDRV_PCM_FORMAT_S16_LE:
172 default:
173 bit_width = 16;
174 }
175 return bit_width;
176}
177
178static bool msm_is_resample_needed(int input_sr, int output_sr)
179{
180 bool rc = false;
181
182 if (input_sr != output_sr)
183 rc = true;
184
185 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
186 (rc ? "oh yes" : "not really"),
187 input_sr, output_sr);
188
189 return rc;
190}
191
192static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
193 int channels)
194{
195 int rc = 0;
196
197 switch (topology) {
198 case SRS_TRUMEDIA_TOPOLOGY_ID:
199 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
200 msm_dts_srs_tm_init(port_id, copp_idx);
201 break;
202 case DS2_ADM_COPP_TOPOLOGY_ID:
203 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
204 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
205 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
206 is_custom_stereo_on);
207 if (rc < 0)
208 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
209 __func__, topology, port_id,
210 is_custom_stereo_on, rc);
211 break;
212 case DOLBY_ADM_COPP_TOPOLOGY_ID:
213 if (is_ds2_on) {
214 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
215 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
216 is_custom_stereo_on);
217 if (rc < 0)
218 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
219 __func__, topology, port_id, rc);
220 } else {
221 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
222 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
223 is_custom_stereo_on);
224 if (rc < 0)
225 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
226 __func__, topology, port_id, rc);
227 }
228 break;
229 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
230 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
231 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
232 if (rc < 0)
233 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
234 __func__, topology, port_id, copp_idx, rc);
235 break;
236 default:
237 /* custom topology specific feature param handlers */
238 break;
239 }
240}
241
242static void msm_pcm_routing_deinit_pp(int port_id, int topology)
243{
244 switch (topology) {
245 case SRS_TRUMEDIA_TOPOLOGY_ID:
246 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
247 msm_dts_srs_tm_deinit(port_id);
248 break;
249 case DS2_ADM_COPP_TOPOLOGY_ID:
250 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
251 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
252 msm_ds2_dap_deinit(port_id);
253 break;
254 case DOLBY_ADM_COPP_TOPOLOGY_ID:
255 if (is_ds2_on) {
256 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
257 msm_ds2_dap_deinit(port_id);
258 } else {
259 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
260 msm_dolby_dap_deinit(port_id);
261 }
262 break;
263 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
264 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
265 msm_qti_pp_asphere_deinit(port_id);
266 break;
267 default:
268 /* custom topology specific feature deinit handlers */
269 break;
270 }
271}
272
273static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
274 int path_type, int perf_mode)
275{
276 int itr = 0, rc = 0;
277
278 if ((path_type == ADM_PATH_PLAYBACK) &&
279 (perf_mode == LEGACY_PCM_MODE) &&
280 is_custom_stereo_on) {
281 for (itr = 0; itr < payload.num_copps; itr++) {
282 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
283 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
284 continue;
285 }
286
287 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
288 payload.port_id[itr],
289 payload.copp_idx[itr],
290 payload.session_id,
291 Q14_GAIN_ZERO_POINT_FIVE,
292 Q14_GAIN_ZERO_POINT_FIVE,
293 Q14_GAIN_ZERO_POINT_FIVE,
294 Q14_GAIN_ZERO_POINT_FIVE);
295 if (rc < 0)
296 pr_err("%s: err setting custom stereo\n",
297 __func__);
298 }
299 }
300}
301
302#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
303struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
304 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_RX},
305 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_TX},
306 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_RX},
307 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_TX},
308 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_HDMI},
309 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_RX},
310 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_TX},
311 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_RX},
312 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_TX},
313 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
314 LPASS_BE_AFE_PCM_RX},
315 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
316 LPASS_BE_AFE_PCM_TX},
317 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
318 LPASS_BE_AUXPCM_RX},
319 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
320 LPASS_BE_AUXPCM_TX},
321 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
322 LPASS_BE_VOICE_PLAYBACK_TX},
323 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
324 LPASS_BE_VOICE2_PLAYBACK_TX},
325 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
326 LPASS_BE_INCALL_RECORD_RX},
327 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
328 LPASS_BE_INCALL_RECORD_TX},
329 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_RX},
330 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_TX},
331 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SEC_I2S_RX},
332 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_RX},
333 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_TX},
334 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_RX},
335 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_TX},
336 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_RX},
337 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_TX},
338 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_RX},
339 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_TX},
340 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_RX},
341 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_TX},
342 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_RX},
343 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_TX},
344 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_RX},
345 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_TX},
346 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_RX},
347 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_TX},
348 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_RX},
349 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_TX},
350 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_1_TX},
351 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
352 LPASS_BE_QUAT_MI2S_RX},
353 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
354 LPASS_BE_QUAT_MI2S_TX},
355 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
356 LPASS_BE_SEC_MI2S_RX},
357 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
358 LPASS_BE_SEC_MI2S_TX},
359 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
360 LPASS_BE_PRI_MI2S_RX},
361 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
362 LPASS_BE_PRI_MI2S_TX},
363 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
364 LPASS_BE_TERT_MI2S_RX},
365 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
366 LPASS_BE_TERT_MI2S_TX},
367 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
368 LPASS_BE_AUDIO_I2S_RX},
369 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
370 LPASS_BE_SEC_AUXPCM_RX},
371 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
372 LPASS_BE_SEC_AUXPCM_TX},
Ralf Herzc8701f72018-06-20 11:37:35 +0200373 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
374 LPASS_BE_PRI_SPDIF_RX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0, {0},
376 LPASS_BE_SEC_MI2S_RX_SD1},
377 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
378 LPASS_BE_QUIN_MI2S_RX},
379 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
380 LPASS_BE_QUIN_MI2S_TX},
381 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
382 LPASS_BE_SENARY_MI2S_TX},
383 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
384 LPASS_BE_PRI_TDM_RX_0},
385 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
386 LPASS_BE_PRI_TDM_TX_0},
387 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
388 LPASS_BE_PRI_TDM_RX_1},
389 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
390 LPASS_BE_PRI_TDM_TX_1},
391 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
392 LPASS_BE_PRI_TDM_RX_2},
393 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
394 LPASS_BE_PRI_TDM_TX_2},
395 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
396 LPASS_BE_PRI_TDM_RX_3},
397 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
398 LPASS_BE_PRI_TDM_TX_3},
399 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
400 LPASS_BE_PRI_TDM_RX_4},
401 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
402 LPASS_BE_PRI_TDM_TX_4},
403 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
404 LPASS_BE_PRI_TDM_RX_5},
405 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
406 LPASS_BE_PRI_TDM_TX_5},
407 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
408 LPASS_BE_PRI_TDM_RX_6},
409 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
410 LPASS_BE_PRI_TDM_TX_6},
411 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
412 LPASS_BE_PRI_TDM_RX_7},
413 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
414 LPASS_BE_PRI_TDM_TX_7},
415 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
416 LPASS_BE_SEC_TDM_RX_0},
417 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
418 LPASS_BE_SEC_TDM_TX_0},
419 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
420 LPASS_BE_SEC_TDM_RX_1},
421 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
422 LPASS_BE_SEC_TDM_TX_1},
423 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
424 LPASS_BE_SEC_TDM_RX_2},
425 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
426 LPASS_BE_SEC_TDM_TX_2},
427 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
428 LPASS_BE_SEC_TDM_RX_3},
429 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
430 LPASS_BE_SEC_TDM_TX_3},
431 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
432 LPASS_BE_SEC_TDM_RX_4},
433 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
434 LPASS_BE_SEC_TDM_TX_4},
435 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
436 LPASS_BE_SEC_TDM_RX_5},
437 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
438 LPASS_BE_SEC_TDM_TX_5},
439 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
440 LPASS_BE_SEC_TDM_RX_6},
441 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
442 LPASS_BE_SEC_TDM_TX_6},
443 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
444 LPASS_BE_SEC_TDM_RX_7},
445 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
446 LPASS_BE_SEC_TDM_TX_7},
447 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
448 LPASS_BE_TERT_TDM_RX_0},
449 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
450 LPASS_BE_TERT_TDM_TX_0},
451 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
452 LPASS_BE_TERT_TDM_RX_1},
453 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
454 LPASS_BE_TERT_TDM_TX_1},
455 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
456 LPASS_BE_TERT_TDM_RX_2},
457 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
458 LPASS_BE_TERT_TDM_TX_2},
459 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
460 LPASS_BE_TERT_TDM_RX_3},
461 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
462 LPASS_BE_TERT_TDM_TX_3},
463 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
464 LPASS_BE_TERT_TDM_RX_4},
465 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
466 LPASS_BE_TERT_TDM_TX_4},
467 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
468 LPASS_BE_TERT_TDM_RX_5},
469 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
470 LPASS_BE_TERT_TDM_TX_5},
471 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
472 LPASS_BE_TERT_TDM_RX_6},
473 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
474 LPASS_BE_TERT_TDM_TX_6},
475 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
476 LPASS_BE_TERT_TDM_RX_7},
477 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
478 LPASS_BE_TERT_TDM_TX_7},
479 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
480 LPASS_BE_QUAT_TDM_RX_0},
481 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
482 LPASS_BE_QUAT_TDM_TX_0},
483 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
484 LPASS_BE_QUAT_TDM_RX_1},
485 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
486 LPASS_BE_QUAT_TDM_TX_1},
487 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
488 LPASS_BE_QUAT_TDM_RX_2},
489 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
490 LPASS_BE_QUAT_TDM_TX_2},
491 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
492 LPASS_BE_QUAT_TDM_RX_3},
493 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
494 LPASS_BE_QUAT_TDM_TX_3},
495 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
496 LPASS_BE_QUAT_TDM_RX_4},
497 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
498 LPASS_BE_QUAT_TDM_TX_4},
499 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
500 LPASS_BE_QUAT_TDM_RX_5},
501 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
502 LPASS_BE_QUAT_TDM_TX_5},
503 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
504 LPASS_BE_QUAT_TDM_RX_6},
505 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
506 LPASS_BE_QUAT_TDM_TX_6},
507 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
508 LPASS_BE_QUAT_TDM_RX_7},
509 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
510 LPASS_BE_QUAT_TDM_TX_7},
Rohit Kumara5077932017-09-10 22:05:05 +0530511 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
512 LPASS_BE_QUIN_TDM_RX_0},
513 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
514 LPASS_BE_QUIN_TDM_TX_0},
515 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
516 LPASS_BE_QUIN_TDM_RX_1},
517 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
518 LPASS_BE_QUIN_TDM_TX_1},
519 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
520 LPASS_BE_QUIN_TDM_RX_2},
521 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
522 LPASS_BE_QUIN_TDM_TX_2},
523 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
524 LPASS_BE_QUIN_TDM_RX_3},
525 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
526 LPASS_BE_QUIN_TDM_TX_3},
527 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
528 LPASS_BE_QUIN_TDM_RX_4},
529 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
530 LPASS_BE_QUIN_TDM_TX_4},
531 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
532 LPASS_BE_QUIN_TDM_RX_5},
533 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
534 LPASS_BE_QUIN_TDM_TX_5},
535 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
536 LPASS_BE_QUIN_TDM_RX_6},
537 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
538 LPASS_BE_QUIN_TDM_TX_6},
539 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
540 LPASS_BE_QUIN_TDM_RX_7},
541 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
542 LPASS_BE_QUIN_TDM_TX_7},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530543 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
544 LPASS_BE_INT_BT_A2DP_RX},
545 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
546 LPASS_BE_USB_AUDIO_RX},
547 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
548 LPASS_BE_USB_AUDIO_TX},
549 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
550 LPASS_BE_DISPLAY_PORT},
Karthikeyan Mani57550082018-05-03 18:43:58 -0700551 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
552 LPASS_BE_DISPLAY_PORT1},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530553 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
554 LPASS_BE_TERT_AUXPCM_RX},
555 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
556 LPASS_BE_TERT_AUXPCM_TX},
557 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
558 LPASS_BE_QUAT_AUXPCM_RX},
559 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
560 LPASS_BE_QUAT_AUXPCM_TX},
Rohit Kumara5077932017-09-10 22:05:05 +0530561 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
562 LPASS_BE_QUIN_AUXPCM_RX},
563 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
564 LPASS_BE_QUIN_AUXPCM_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530565 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
566 LPASS_BE_INT0_MI2S_RX},
567 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
568 LPASS_BE_INT0_MI2S_TX},
569 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
570 LPASS_BE_INT1_MI2S_RX},
571 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
572 LPASS_BE_INT1_MI2S_TX},
573 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
574 LPASS_BE_INT2_MI2S_RX},
575 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
576 LPASS_BE_INT2_MI2S_TX},
577 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
578 LPASS_BE_INT3_MI2S_RX},
579 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
580 LPASS_BE_INT3_MI2S_TX},
581 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
582 LPASS_BE_INT4_MI2S_RX},
583 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
584 LPASS_BE_INT4_MI2S_TX},
585 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
586 LPASS_BE_INT5_MI2S_RX},
587 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
588 LPASS_BE_INT5_MI2S_TX},
589 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
590 LPASS_BE_INT6_MI2S_RX},
591 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
592 LPASS_BE_INT6_MI2S_TX},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530593 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
594 LPASS_BE_WSA_CDC_DMA_RX_0},
595 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
596 LPASS_BE_WSA_CDC_DMA_TX_0},
597 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
598 LPASS_BE_WSA_CDC_DMA_RX_1},
599 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
600 LPASS_BE_WSA_CDC_DMA_TX_1},
601 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
602 LPASS_BE_WSA_CDC_DMA_TX_2},
603 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
604 LPASS_BE_VA_CDC_DMA_TX_0},
605 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
606 LPASS_BE_VA_CDC_DMA_TX_1},
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530607 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
608 LPASS_BE_RX_CDC_DMA_RX_0},
609 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
610 LPASS_BE_TX_CDC_DMA_TX_0},
611 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
612 LPASS_BE_RX_CDC_DMA_RX_1},
613 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
614 LPASS_BE_TX_CDC_DMA_TX_1},
615 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
616 LPASS_BE_RX_CDC_DMA_RX_2},
617 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
618 LPASS_BE_TX_CDC_DMA_TX_2},
619 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
620 LPASS_BE_RX_CDC_DMA_RX_3},
621 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
622 LPASS_BE_TX_CDC_DMA_TX_3},
623 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
624 LPASS_BE_RX_CDC_DMA_RX_4},
625 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
626 LPASS_BE_TX_CDC_DMA_TX_4},
627 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
628 LPASS_BE_RX_CDC_DMA_RX_5},
629 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
630 LPASS_BE_TX_CDC_DMA_TX_5},
631 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
632 LPASS_BE_RX_CDC_DMA_RX_6},
633 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
634 LPASS_BE_RX_CDC_DMA_RX_7},
Ralf Herzc8701f72018-06-20 11:37:35 +0200635 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
636 LPASS_BE_PRI_SPDIF_TX},
637 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
638 LPASS_BE_SEC_SPDIF_RX},
639 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
640 LPASS_BE_SEC_SPDIF_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530641};
642
643/* Track ASM playback & capture sessions of DAI
644 * Track LSM listen sessions
645 */
646static struct msm_pcm_routing_fdai_data
647 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
648 /* MULTIMEDIA1 */
649 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
650 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
651 /* MULTIMEDIA2 */
652 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
653 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
654 /* MULTIMEDIA3 */
655 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
656 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
657 /* MULTIMEDIA4 */
658 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
659 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
660 /* MULTIMEDIA5 */
661 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
662 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
663 /* MULTIMEDIA6 */
664 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
665 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
666 /* MULTIMEDIA7*/
667 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
668 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
669 /* MULTIMEDIA8 */
670 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
671 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
672 /* MULTIMEDIA9 */
673 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
674 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
675 /* MULTIMEDIA10 */
676 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
677 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
678 /* MULTIMEDIA11 */
679 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
680 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
681 /* MULTIMEDIA12 */
682 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
683 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
684 /* MULTIMEDIA13 */
685 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
686 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
687 /* MULTIMEDIA14 */
688 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
689 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
690 /* MULTIMEDIA15 */
691 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
692 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
693 /* MULTIMEDIA16 */
694 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
695 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
696 /* MULTIMEDIA17 */
697 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
698 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
699 /* MULTIMEDIA18 */
700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
702 /* MULTIMEDIA19 */
703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
705 /* MULTIMEDIA20 */
706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700708 /* MULTIMEDIA21 */
709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530711 /* MULTIMEDIA28 */
712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
714 /* MULTIMEDIA29 */
715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530717 /* VOIP */
718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
720 /* AFE_RX */
721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
723 /* AFE_TX */
724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
726 /* VOICE_STUB */
727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530729 /* DTMF_RX */
730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530732 /* QCHAT */
733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
735 /* VOLTE_STUB */
736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
738 /* LSM1 */
739 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
740 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
741 /* LSM2 */
742 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
743 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
744 /* LSM3 */
745 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
746 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
747 /* LSM4 */
748 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
749 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
750 /* LSM5 */
751 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
752 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
753 /* LSM6 */
754 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
755 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
756 /* LSM7 */
757 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
758 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
759 /* LSM8 */
760 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
761 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
762 /* VOICE2_STUB */
763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530765 /* VOICEMMODE1 */
766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
768 /* VOICEMMODE2 */
769 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
770 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
771};
772
773static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
774 [MSM_BACKEND_DAI_MAX];
775static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
776static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
777static struct msm_pcm_stream_app_type_cfg
778 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
779
780static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
781
782/* The caller of this should aqcuire routing lock */
783void msm_pcm_routing_get_bedai_info(int be_idx,
784 struct msm_pcm_routing_bdai_data *be_dai)
785{
786 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
787 memcpy(be_dai, &msm_bedais[be_idx],
788 sizeof(struct msm_pcm_routing_bdai_data));
789}
790
791/* The caller of this should aqcuire routing lock */
792void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
793 struct msm_pcm_routing_fdai_data *fe_dai)
794{
795 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
796 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
797 sizeof(struct msm_pcm_routing_fdai_data));
798}
799
800void msm_pcm_routing_acquire_lock(void)
801{
802 mutex_lock(&routing_lock);
803}
804
805void msm_pcm_routing_release_lock(void)
806{
807 mutex_unlock(&routing_lock);
808}
809
810static int msm_pcm_routing_get_app_type_idx(int app_type)
811{
812 int idx;
813
814 pr_debug("%s: app_type: %d\n", __func__, app_type);
815 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
816 if (app_type_cfg[idx].app_type == app_type)
817 return idx;
818 }
819 pr_info("%s: App type not available, fallback to default\n", __func__);
820 return 0;
821}
822
823static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
824{
825 int idx;
826
827 pr_debug("%s: app_type: %d\n", __func__, app_type);
828 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
829 if (lsm_app_type_cfg[idx].app_type == app_type)
830 return idx;
831 }
832 pr_debug("%s: App type not available, fallback to default\n", __func__);
833 return 0;
834}
835
836static bool is_mm_lsm_fe_id(int fe_id)
837{
838 bool rc = true;
839
840 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
841 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
842 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
843 rc = false;
844 }
845 return rc;
846}
847
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700848/*
849 * msm_pcm_routing_send_chmix_cfg:
850 * send the channel mixer command to mix the input channels
851 * into output channels.
852 *
853 * @fe_id: front end id
854 * @ip_channel_cnt: input channel count
855 * @op_channel_cnt: output channel count
856 * @ch_wght_coeff: channel weight co-efficients for channel mixing
857 * @session_type: indicates session is of type TX or RX
858 * @stream_type: indicates either Audio or Listen stream type
859 */
860int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
861 int op_channel_cnt, int *ch_wght_coeff,
862 int session_type, int stream_type)
863{
864
865 int rc = 0, idx = 0;
866 int be_index = 0, port_id;
867 unsigned int session_id = 0;
868
869 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
870 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
871 stream_type);
872 if (!is_mm_lsm_fe_id(fe_id)) {
873 /* bad ID assigned in machine driver */
874 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
875 return -EINVAL;
876 }
877
878 if (ch_wght_coeff == NULL) {
879 pr_err("%s: Null channel weightage coefficients passed\n",
880 __func__);
881 return -EINVAL;
882 }
883
884 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
885 port_id = msm_bedais[be_index].port_id;
886 if (!msm_bedais[be_index].active ||
887 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
888 continue;
889
890 session_id = fe_dai_map[fe_id][session_type].strm_id;
891
892 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
893 unsigned long copp =
894 session_copp_map[fe_id][session_type][be_index];
895 if (!test_bit(idx, &copp))
896 continue;
897 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
898 session_id, ip_channel_cnt,
899 op_channel_cnt, ch_wght_coeff,
900 session_type, stream_type);
901 if (rc < 0)
902 pr_err("%s: err setting channel mix config\n",
903 __func__);
904 }
905 }
906
907 return 0;
908}
909EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
910
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530911int msm_pcm_routing_reg_stream_app_type_cfg(
912 int fedai_id, int session_type, int be_id,
913 struct msm_pcm_stream_app_type_cfg *cfg_data)
914{
915 int ret = 0;
916
917 if (cfg_data == NULL) {
918 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
919 ret = -EINVAL;
920 goto done;
921 }
922
923 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
924 __func__, fedai_id, session_type, be_id,
925 cfg_data->app_type, cfg_data->acdb_dev_id,
926 cfg_data->sample_rate);
927
928 if (!is_mm_lsm_fe_id(fedai_id)) {
929 pr_err("%s: Invalid machine driver ID %d\n",
930 __func__, fedai_id);
931 ret = -EINVAL;
932 goto done;
933 }
934 if (session_type != SESSION_TYPE_RX &&
935 session_type != SESSION_TYPE_TX) {
936 pr_err("%s: Invalid session type %d\n",
937 __func__, session_type);
938 ret = -EINVAL;
939 goto done;
940 }
941 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
942 pr_err("%s: Received out of bounds be_id %d\n",
943 __func__, be_id);
944 ret = -EINVAL;
945 goto done;
946 }
947
948 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
949
950 /*
951 * Store the BE ID of the configuration information set as the latest so
952 * the get mixer control knows what to return.
953 */
954 last_be_id_configured[fedai_id][session_type] = be_id;
955
956done:
957 return ret;
958}
959EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
960
961/**
962 * msm_pcm_routing_get_stream_app_type_cfg
963 *
964 * Receives fedai_id, session_type, be_id, and populates app_type,
965 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
966 * -EINVAL and does not alter passed values.
967 *
968 * fedai_id - Passed value, front end ID for which app type config is wanted
969 * session_type - Passed value, session type for which app type config
970 * is wanted
971 * be_id - Returned value, back end device id the app type config data is for
972 * cfg_data - Returned value, configuration data used by app type config
973 */
974int msm_pcm_routing_get_stream_app_type_cfg(
975 int fedai_id, int session_type, int *bedai_id,
976 struct msm_pcm_stream_app_type_cfg *cfg_data)
977{
978 int be_id;
979 int ret = 0;
980
981 if (bedai_id == NULL) {
982 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
983 ret = -EINVAL;
984 goto done;
985 } else if (cfg_data == NULL) {
986 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
987 ret = -EINVAL;
988 goto done;
989 } else if (!is_mm_lsm_fe_id(fedai_id)) {
990 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
991 ret = -EINVAL;
992 goto done;
993 } else if (session_type != SESSION_TYPE_RX &&
994 session_type != SESSION_TYPE_TX) {
995 pr_err("%s: Invalid session type %d\n", __func__, session_type);
996 ret = -EINVAL;
997 goto done;
998 }
999
1000 be_id = last_be_id_configured[fedai_id][session_type];
1001 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1002 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1003 ret = -EINVAL;
1004 goto done;
1005 }
1006
1007 *bedai_id = be_id;
1008 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1009 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1010 __func__, fedai_id, session_type, *bedai_id,
1011 cfg_data->app_type, cfg_data->acdb_dev_id,
1012 cfg_data->sample_rate);
1013done:
1014 return ret;
1015}
1016EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1017
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301018static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1019 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301020{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301021 struct list_head *ptr, *next;
1022 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301023 pr_debug("%s\n", __func__);
1024
1025 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301026 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301027
1028 cal_block = list_entry(ptr,
1029 struct cal_block_data, list);
1030
Vikram Panduranga770b8382017-09-27 12:17:36 -07001031 if (cal_utils_is_cal_stale(cal_block))
1032 continue;
1033
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301034 if (((struct audio_cal_info_adm_top *)cal_block
1035 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301036 return cal_block;
1037 }
1038 }
1039 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1040 return NULL;
1041}
1042
1043static struct cal_block_data *msm_routing_find_topology(int path,
1044 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301045 int acdb_id,
1046 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301047{
1048 struct list_head *ptr, *next;
1049 struct cal_block_data *cal_block = NULL;
1050 struct audio_cal_info_adm_top *cal_info;
1051
1052 pr_debug("%s\n", __func__);
1053
1054 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301055 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301056
1057 cal_block = list_entry(ptr,
1058 struct cal_block_data, list);
1059
Vikram Panduranga770b8382017-09-27 12:17:36 -07001060 if (cal_utils_is_cal_stale(cal_block))
1061 continue;
1062
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301063 cal_info = (struct audio_cal_info_adm_top *)
1064 cal_block->cal_info;
1065 if ((cal_info->path == path) &&
1066 (cal_info->app_type == app_type) &&
1067 (cal_info->acdb_id == acdb_id)) {
1068 return cal_block;
1069 }
1070 }
1071 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1072 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001073 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301074}
1075
Vikram Panduranga770b8382017-09-27 12:17:36 -07001076/*
1077 * Retrieving cal_block will mark cal_block as stale.
1078 * Hence it cannot be reused or resent unless the flag
1079 * is reset.
1080 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301081static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1082 int be_id)
1083{
1084 int topology = NULL_COPP_TOPOLOGY;
1085 struct cal_block_data *cal_block = NULL;
1086 int app_type = 0, acdb_dev_id = 0;
1087
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301088 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1089 __func__, fedai_id, session_type, be_id);
1090
1091 if (cal_data == NULL)
1092 goto done;
1093
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301094 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1095 acdb_dev_id =
1096 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1097
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301098 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301099 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301100 acdb_dev_id,
1101 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001102 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301103 topology = ((struct audio_cal_info_adm_top *)
1104 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001105 cal_utils_mark_cal_used(cal_block);
1106 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1107 } else {
1108 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301109
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301110 pr_debug("%s: Check for LSM topology\n", __func__);
1111 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1112 cal_block = msm_routing_find_topology(session_type, app_type,
1113 acdb_dev_id,
1114 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001115 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301116 topology = ((struct audio_cal_info_adm_top *)
1117 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001118 cal_utils_mark_cal_used(cal_block);
1119 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301120 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1121 }
1122
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301123done:
1124 pr_debug("%s: Using topology %d\n", __func__, topology);
1125 return topology;
1126}
1127
1128static uint8_t is_be_dai_extproc(int be_dai)
1129{
1130 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1131 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1132 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1133 return 1;
1134 else
1135 return 0;
1136}
1137
1138static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1139 int path_type, int perf_mode,
1140 uint32_t passthr_mode)
1141{
1142 int i, port_type, j, num_copps = 0;
1143 struct route_payload payload;
1144
1145 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1146 path_type == ADM_PATH_COMPRESSED_RX) ?
1147 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1148
1149 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1150 if (!is_be_dai_extproc(i) &&
1151 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1152 (msm_bedais[i].active) &&
1153 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1154 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1155 unsigned long copp =
1156 session_copp_map[fedai_id][sess_type][i];
1157 if (test_bit(j, &copp)) {
1158 payload.port_id[num_copps] =
1159 msm_bedais[i].port_id;
1160 payload.copp_idx[num_copps] = j;
1161 payload.app_type[num_copps] =
1162 fe_dai_app_type_cfg
1163 [fedai_id][sess_type][i]
1164 .app_type;
1165 payload.acdb_dev_id[num_copps] =
1166 fe_dai_app_type_cfg
1167 [fedai_id][sess_type][i]
1168 .acdb_dev_id;
1169 payload.sample_rate[num_copps] =
1170 fe_dai_app_type_cfg
1171 [fedai_id][sess_type][i]
1172 .sample_rate;
1173 num_copps++;
1174 }
1175 }
1176 }
1177 }
1178
1179 if (num_copps) {
1180 payload.num_copps = num_copps;
1181 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1182 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1183 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1184 }
1185}
1186
1187void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1188 int stream_type)
1189{
1190 int i, session_type, path_type, port_type;
1191 u32 mode = 0;
1192
1193 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1194 /* bad ID assigned in machine driver */
1195 pr_err("%s: bad MM ID\n", __func__);
1196 return;
1197 }
1198
1199 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1200 session_type = SESSION_TYPE_RX;
1201 path_type = ADM_PATH_PLAYBACK;
1202 port_type = MSM_AFE_PORT_TYPE_RX;
1203 } else {
1204 session_type = SESSION_TYPE_TX;
1205 path_type = ADM_PATH_LIVE_REC;
1206 port_type = MSM_AFE_PORT_TYPE_TX;
1207 }
1208
1209 mutex_lock(&routing_lock);
1210
1211 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1212 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1213 if (!is_be_dai_extproc(i) &&
1214 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1215 (msm_bedais[i].active) &&
1216 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1217 mode = afe_get_port_type(msm_bedais[i].port_id);
1218 adm_connect_afe_port(mode, dspst_id,
1219 msm_bedais[i].port_id);
1220 break;
1221 }
1222 }
1223 mutex_unlock(&routing_lock);
1224}
1225
1226static bool route_check_fe_id_adm_support(int fe_id)
1227{
1228 bool rc = true;
1229
1230 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1231 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1232 /* fe id is listen while port is set to afe */
1233 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1234 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1235 __func__, fe_id, lsm_port_index);
1236 rc = false;
1237 }
1238 }
1239
1240 return rc;
1241}
1242
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001243/*
1244 * msm_pcm_routing_get_pp_ch_cnt:
1245 * Read the processed channel count
1246 *
1247 * @fe_id: Front end ID
1248 * @session_type: Inidicates RX or TX session type
1249 */
1250int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1251{
1252 struct msm_pcm_stream_app_type_cfg cfg_data;
1253 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301254 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001255
1256 memset(&cfg_data, 0, sizeof(cfg_data));
1257
1258 if (!is_mm_lsm_fe_id(fe_id)) {
1259 pr_err("%s: bad MM ID\n", __func__);
1260 return -EINVAL;
1261 }
1262
1263 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1264 &be_id, &cfg_data);
1265 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301266 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001267 return ret;
1268 }
1269
1270 app_type = cfg_data.app_type;
1271 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1272 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1273}
1274EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1275
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301276int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1277 int dspst_id, int stream_type,
1278 uint32_t passthr_mode)
1279{
1280 int i, j, session_type, path_type, port_type, topology;
1281 int num_copps = 0;
1282 struct route_payload payload;
1283 u32 channels, sample_rate;
1284 u16 bit_width = 16;
1285 bool is_lsm;
1286
1287 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1288 __func__, fe_id, perf_mode, dspst_id,
1289 stream_type, passthr_mode);
1290 if (!is_mm_lsm_fe_id(fe_id)) {
1291 /* bad ID assigned in machine driver */
1292 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1293 return -EINVAL;
1294 }
1295
1296 if (!route_check_fe_id_adm_support(fe_id)) {
1297 /* ignore adm open if not supported for fe_id */
1298 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1299 return 0;
1300 }
1301
1302 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1303 session_type = SESSION_TYPE_RX;
1304 if (passthr_mode != LEGACY_PCM)
1305 path_type = ADM_PATH_COMPRESSED_RX;
1306 else
1307 path_type = ADM_PATH_PLAYBACK;
1308 port_type = MSM_AFE_PORT_TYPE_RX;
1309 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1310 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301311 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301312 path_type = ADM_PATH_COMPRESSED_TX;
1313 else
1314 path_type = ADM_PATH_LIVE_REC;
1315 port_type = MSM_AFE_PORT_TYPE_TX;
1316 } else {
1317 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1318 return -EINVAL;
1319 }
1320
1321 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1322 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1323 mutex_lock(&routing_lock);
1324
1325 payload.num_copps = 0; /* only RX needs to use payload */
1326 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
1327 /* re-enable EQ if active */
1328 msm_qti_pp_send_eq_values(fe_id);
1329 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1330 if (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))
1331 msm_bedais[i].passthr_mode[fe_id] = passthr_mode;
1332
1333 if (!is_be_dai_extproc(i) &&
1334 (afe_get_port_type(msm_bedais[i].port_id) ==
1335 port_type) &&
1336 (msm_bedais[i].active) &&
1337 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1338 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1339
1340 /*
1341 * check if ADM needs to be configured with different
1342 * channel mapping than backend
1343 */
1344 if (!msm_bedais[i].adm_override_ch)
1345 channels = msm_bedais[i].channel;
1346 else
1347 channels = msm_bedais[i].adm_override_ch;
1348
1349 bit_width = msm_routing_get_bit_width(
1350 msm_bedais[i].format);
1351 app_type =
1352 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1353 if (app_type && is_lsm) {
1354 app_type_idx =
1355 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1356 sample_rate =
1357 fe_dai_app_type_cfg[fe_id][session_type][i]
1358 .sample_rate;
1359 bit_width =
1360 lsm_app_type_cfg[app_type_idx].bit_width;
1361 } else if (app_type) {
1362 app_type_idx =
1363 msm_pcm_routing_get_app_type_idx(
1364 app_type);
1365 sample_rate =
1366 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1367 bit_width =
1368 app_type_cfg[app_type_idx].bit_width;
1369 } else {
1370 sample_rate = msm_bedais[i].sample_rate;
1371 }
1372 acdb_dev_id =
1373 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1374 topology = msm_routing_get_adm_topology(fe_id,
1375 session_type,
1376 i);
1377 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1378 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001379 COMPRESSED_PASSTHROUGH_GEN)
1380 || (passthr_mode ==
1381 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301382 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1383 pr_debug("%s: Before adm open topology %d\n", __func__,
1384 topology);
1385
1386 copp_idx =
1387 adm_open(msm_bedais[i].port_id,
1388 path_type, sample_rate, channels,
1389 topology, perf_mode, bit_width,
1390 app_type, acdb_dev_id);
1391 if ((copp_idx < 0) ||
1392 (copp_idx >= MAX_COPPS_PER_PORT)) {
1393 pr_err("%s:adm open failed coppid:%d\n",
1394 __func__, copp_idx);
1395 mutex_unlock(&routing_lock);
1396 return -EINVAL;
1397 }
1398 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1399 __func__, fe_id, session_type, i);
1400 set_bit(copp_idx,
1401 &session_copp_map[fe_id][session_type][i]);
1402
1403 if (msm_is_resample_needed(
1404 sample_rate,
1405 msm_bedais[i].sample_rate))
1406 adm_copp_mfc_cfg(
1407 msm_bedais[i].port_id, copp_idx,
1408 msm_bedais[i].sample_rate);
1409
1410 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1411 unsigned long copp =
1412 session_copp_map[fe_id][session_type][i];
1413 if (test_bit(j, &copp)) {
1414 payload.port_id[num_copps] =
1415 msm_bedais[i].port_id;
1416 payload.copp_idx[num_copps] = j;
1417 payload.app_type[num_copps] =
1418 fe_dai_app_type_cfg
1419 [fe_id][session_type][i]
1420 .app_type;
1421 payload.acdb_dev_id[num_copps] =
1422 fe_dai_app_type_cfg
1423 [fe_id][session_type][i]
1424 .acdb_dev_id;
1425 payload.sample_rate[num_copps] =
1426 fe_dai_app_type_cfg
1427 [fe_id][session_type][i]
1428 .sample_rate;
1429 num_copps++;
1430 }
1431 }
1432 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001433 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301434 && passthr_mode !=
Ralf Herzc8701f72018-06-20 11:37:35 +02001435 COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301436 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001437 msm_bedais[i].port_id,
1438 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301439 }
1440 }
1441 if (num_copps) {
1442 payload.num_copps = num_copps;
1443 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1444 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1445 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1446 }
1447 mutex_unlock(&routing_lock);
1448 return 0;
1449}
1450
1451static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1452{
1453 u32 session_id;
1454
1455 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301456 case MSM_FRONTEND_DAI_QCHAT:
1457 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1458 break;
1459 case MSM_FRONTEND_DAI_VOIP:
1460 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1461 break;
1462 case MSM_FRONTEND_DAI_VOICEMMODE1:
1463 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1464 break;
1465 case MSM_FRONTEND_DAI_VOICEMMODE2:
1466 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1467 break;
1468 default:
1469 session_id = 0;
1470 }
1471
1472 pr_debug("%s session_id 0x%x", __func__, session_id);
1473 return session_id;
1474}
1475
1476static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1477 int dspst_id, int stream_type)
1478{
1479 int copp_idx = 0;
1480 int sess_type = 0;
1481 int i = 0, j = 0, be_id;
1482 int ret = 0;
1483
1484 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1485 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1486 return 0;
1487 }
1488
1489 if (!(channel_mixer[fe_id].enable)) {
1490 pr_debug("%s: channel mixer not enabled for FE %d\n",
1491 __func__, fe_id);
1492 return 0;
1493 }
1494
1495 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1496 sess_type = SESSION_TYPE_RX;
1497 else
1498 sess_type = SESSION_TYPE_TX;
1499
1500 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1501 ++i) {
1502 be_id = channel_input[fe_id][i] - 1;
1503 channel_mixer[fe_id].input_channels[i] =
1504 msm_bedais[be_id].channel;
1505
1506 if ((msm_bedais[be_id].active) &&
1507 test_bit(fe_id,
1508 &msm_bedais[be_id].fe_sessions[0])) {
1509 unsigned long copp =
1510 session_copp_map[fe_id][sess_type][be_id];
1511 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1512 if (test_bit(j, &copp)) {
1513 copp_idx = j;
1514 break;
1515 }
1516 }
1517
1518 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1519 __func__,
1520 fe_id, be_id, msm_bedais[be_id].channel,
1521 copp_idx);
1522 ret = adm_programable_channel_mixer(
1523 msm_bedais[be_id].port_id,
1524 copp_idx, dspst_id, sess_type,
1525 channel_mixer + fe_id, i);
1526 }
1527 }
1528
1529 return ret;
1530}
1531
1532int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1533 int dspst_id, int stream_type)
1534{
1535 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1536 struct route_payload payload;
1537 u32 channels, sample_rate;
1538 uint16_t bits_per_sample = 16;
1539 uint32_t passthr_mode = LEGACY_PCM;
1540 int ret = 0;
1541
1542 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1543 /* bad ID assigned in machine driver */
1544 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1545 return -EINVAL;
1546 }
1547
1548 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1549 session_type = SESSION_TYPE_RX;
1550 path_type = ADM_PATH_PLAYBACK;
1551 port_type = MSM_AFE_PORT_TYPE_RX;
1552 } else {
1553 session_type = SESSION_TYPE_TX;
1554 path_type = ADM_PATH_LIVE_REC;
1555 port_type = MSM_AFE_PORT_TYPE_TX;
1556 }
1557
1558 mutex_lock(&routing_lock);
1559
1560 payload.num_copps = 0; /* only RX needs to use payload */
1561 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1562 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
1563
1564 /* re-enable EQ if active */
1565 msm_qti_pp_send_eq_values(fedai_id);
1566 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1567 if (!is_be_dai_extproc(i) &&
1568 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1569 (msm_bedais[i].active) &&
1570 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1571 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1572 /*
1573 * check if ADM needs to be configured with different
1574 * channel mapping than backend
1575 */
1576 if (!msm_bedais[i].adm_override_ch)
1577 channels = msm_bedais[i].channel;
1578 else
1579 channels = msm_bedais[i].adm_override_ch;
1580 msm_bedais[i].passthr_mode[fedai_id] =
1581 LEGACY_PCM;
1582
1583 bits_per_sample = msm_routing_get_bit_width(
1584 msm_bedais[i].format);
1585
1586 app_type =
1587 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1588 if (app_type) {
1589 app_type_idx =
1590 msm_pcm_routing_get_app_type_idx(app_type);
1591 sample_rate =
1592 fe_dai_app_type_cfg[fedai_id][session_type][i]
1593 .sample_rate;
1594 bits_per_sample =
1595 app_type_cfg[app_type_idx].bit_width;
1596 } else
1597 sample_rate = msm_bedais[i].sample_rate;
1598
1599 acdb_dev_id =
1600 fe_dai_app_type_cfg[fedai_id][session_type][i]
1601 .acdb_dev_id;
1602 topology = msm_routing_get_adm_topology(fedai_id,
1603 session_type,
1604 i);
1605 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1606 sample_rate, channels, topology,
1607 perf_mode, bits_per_sample,
1608 app_type, acdb_dev_id);
1609 if ((copp_idx < 0) ||
1610 (copp_idx >= MAX_COPPS_PER_PORT)) {
1611 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001612 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301613 mutex_unlock(&routing_lock);
1614 return -EINVAL;
1615 }
1616 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1617 __func__, fedai_id, session_type, i);
1618 set_bit(copp_idx,
1619 &session_copp_map[fedai_id][session_type][i]);
1620
1621 if (msm_is_resample_needed(
1622 sample_rate,
1623 msm_bedais[i].sample_rate))
1624 adm_copp_mfc_cfg(
1625 msm_bedais[i].port_id, copp_idx,
1626 msm_bedais[i].sample_rate);
1627
1628 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1629 unsigned long copp =
1630 session_copp_map[fedai_id][session_type][i];
1631 if (test_bit(j, &copp)) {
1632 payload.port_id[num_copps] =
1633 msm_bedais[i].port_id;
1634 payload.copp_idx[num_copps] = j;
1635 payload.app_type[num_copps] =
1636 fe_dai_app_type_cfg
1637 [fedai_id][session_type]
1638 [i].app_type;
1639 payload.acdb_dev_id[num_copps] =
1640 fe_dai_app_type_cfg
1641 [fedai_id][session_type]
1642 [i].acdb_dev_id;
1643 payload.sample_rate[num_copps] =
1644 fe_dai_app_type_cfg
1645 [fedai_id][session_type]
1646 [i].sample_rate;
1647 num_copps++;
1648 }
1649 }
1650 if ((perf_mode == LEGACY_PCM_MODE) &&
1651 (msm_bedais[i].passthr_mode[fedai_id] ==
1652 LEGACY_PCM))
1653 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
1654 copp_idx, topology,
1655 channels);
1656 }
1657 }
1658 if (num_copps) {
1659 payload.num_copps = num_copps;
1660 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1661 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1662 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1663 }
1664
1665 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1666 dspst_id, stream_type);
1667 mutex_unlock(&routing_lock);
1668 return ret;
1669}
1670
1671int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1672 int dspst_id, int stream_type,
1673 struct msm_pcm_routing_evt event_info)
1674{
1675 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1676 stream_type)) {
1677 pr_err("%s: failed to reg phy stream\n", __func__);
1678 return -EINVAL;
1679 }
1680
1681 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1682 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1683 else
1684 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1685 return 0;
1686}
1687
1688void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1689{
1690 int i, port_type, session_type, path_type, topology;
1691 struct msm_pcm_routing_fdai_data *fdai;
1692
1693 if (!is_mm_lsm_fe_id(fedai_id)) {
1694 /* bad ID assigned in machine driver */
1695 pr_err("%s: bad MM ID\n", __func__);
1696 return;
1697 }
1698
1699 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1700 port_type = MSM_AFE_PORT_TYPE_RX;
1701 session_type = SESSION_TYPE_RX;
1702 path_type = ADM_PATH_PLAYBACK;
1703 } else {
1704 port_type = MSM_AFE_PORT_TYPE_TX;
1705 session_type = SESSION_TYPE_TX;
1706 path_type = ADM_PATH_LIVE_REC;
1707 }
1708
1709 mutex_lock(&routing_lock);
1710 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1711 if (!is_be_dai_extproc(i) &&
1712 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1713 (msm_bedais[i].active) &&
1714 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1715 int idx;
1716 unsigned long copp =
1717 session_copp_map[fedai_id][session_type][i];
1718 fdai = &fe_dai_map[fedai_id][session_type];
1719
1720 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1721 if (test_bit(idx, &copp))
1722 break;
1723
1724 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1725 pr_debug("%s: copp idx is invalid, exiting\n",
1726 __func__);
1727 continue;
1728 }
1729 topology = adm_get_topology_for_port_copp_idx(
1730 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001731 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301732 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1733 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1734 __func__, copp, fedai_id, session_type, i);
1735 clear_bit(idx,
1736 &session_copp_map[fedai_id][session_type][i]);
1737 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1738 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1739 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1740 (msm_bedais[i].passthr_mode[fedai_id] ==
1741 LEGACY_PCM))
1742 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1743 topology);
1744 }
1745 }
1746
1747 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1748 fe_dai_map[fedai_id][session_type].be_srate = 0;
1749 mutex_unlock(&routing_lock);
1750}
1751
1752/* Check if FE/BE route is set */
1753static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1754{
1755 bool rc = false;
1756
1757 if (!is_mm_lsm_fe_id(fe_id)) {
1758 /* recheck FE ID in the mixer control defined in this file */
1759 pr_err("%s: bad MM ID\n", __func__);
1760 return rc;
1761 }
1762
1763 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1764 rc = true;
1765
1766 return rc;
1767}
1768
1769static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1770{
1771 int session_type, path_type, topology;
1772 u32 channels, sample_rate;
1773 uint16_t bits_per_sample = 16;
1774 struct msm_pcm_routing_fdai_data *fdai;
1775 uint32_t passthr_mode;
1776 bool is_lsm;
1777
1778 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1779
1780 if (!is_mm_lsm_fe_id(val)) {
1781 /* recheck FE ID in the mixer control defined in this file */
1782 pr_err("%s: bad MM ID\n", __func__);
1783 return;
1784 }
1785
1786 if (!route_check_fe_id_adm_support(val)) {
1787 /* ignore adm open if not supported for fe_id */
1788 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1789 return;
1790 }
1791
1792 passthr_mode = msm_bedais[reg].passthr_mode[val];
1793 if (afe_get_port_type(msm_bedais[reg].port_id) ==
1794 MSM_AFE_PORT_TYPE_RX) {
1795 session_type = SESSION_TYPE_RX;
1796 if (passthr_mode != LEGACY_PCM)
1797 path_type = ADM_PATH_COMPRESSED_RX;
1798 else
1799 path_type = ADM_PATH_PLAYBACK;
1800 } else {
1801 session_type = SESSION_TYPE_TX;
Ralf Herzc8701f72018-06-20 11:37:35 +02001802 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301803 path_type = ADM_PATH_COMPRESSED_TX;
1804 else
1805 path_type = ADM_PATH_LIVE_REC;
1806 }
1807 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1808 (val <= MSM_FRONTEND_DAI_LSM8);
1809
1810 mutex_lock(&routing_lock);
1811 if (set) {
1812 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1813 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1814 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1815 voc_start_playback(set, msm_bedais[reg].port_id);
1816
1817 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1818 fdai = &fe_dai_map[val][session_type];
1819 if (msm_bedais[reg].active && fdai->strm_id !=
1820 INVALID_SESSION) {
1821 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1822 /*
1823 * check if ADM needs to be configured with different
1824 * channel mapping than backend
1825 */
1826 if (!msm_bedais[reg].adm_override_ch)
1827 channels = msm_bedais[reg].channel;
1828 else
1829 channels = msm_bedais[reg].adm_override_ch;
1830 if (session_type == SESSION_TYPE_TX &&
1831 fdai->be_srate &&
1832 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1833 pr_debug("%s: flush strm %d diff BE rates\n",
1834 __func__, fdai->strm_id);
1835
1836 if (fdai->event_info.event_func)
1837 fdai->event_info.event_func(
1838 MSM_PCM_RT_EVT_BUF_RECFG,
1839 fdai->event_info.priv_data);
1840 fdai->be_srate = 0; /* might not need it */
1841 }
1842
1843 bits_per_sample = msm_routing_get_bit_width(
1844 msm_bedais[reg].format);
1845
1846 app_type =
1847 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1848 if (app_type && is_lsm) {
1849 app_type_idx =
1850 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1851 sample_rate =
1852 fe_dai_app_type_cfg[val][session_type][reg]
1853 .sample_rate;
1854 bits_per_sample =
1855 lsm_app_type_cfg[app_type_idx].bit_width;
1856 } else if (app_type) {
1857 app_type_idx =
1858 msm_pcm_routing_get_app_type_idx(app_type);
1859 sample_rate =
1860 fe_dai_app_type_cfg[val][session_type][reg]
1861 .sample_rate;
1862 bits_per_sample =
1863 app_type_cfg[app_type_idx].bit_width;
1864 } else
1865 sample_rate = msm_bedais[reg].sample_rate;
1866
1867 topology = msm_routing_get_adm_topology(val,
1868 session_type,
1869 reg);
1870 acdb_dev_id =
1871 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1872 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1873 sample_rate, channels, topology,
1874 fdai->perf_mode, bits_per_sample,
1875 app_type, acdb_dev_id);
1876 if ((copp_idx < 0) ||
1877 (copp_idx >= MAX_COPPS_PER_PORT)) {
1878 pr_err("%s: adm open failed\n", __func__);
1879 mutex_unlock(&routing_lock);
1880 return;
1881 }
1882 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1883 __func__, val, session_type, reg);
1884 set_bit(copp_idx,
1885 &session_copp_map[val][session_type][reg]);
1886
1887 if (msm_is_resample_needed(
1888 sample_rate,
1889 msm_bedais[reg].sample_rate))
1890 adm_copp_mfc_cfg(
1891 msm_bedais[reg].port_id, copp_idx,
1892 msm_bedais[reg].sample_rate);
1893
1894 if (session_type == SESSION_TYPE_RX &&
1895 fdai->event_info.event_func)
1896 fdai->event_info.event_func(
1897 MSM_PCM_RT_EVT_DEVSWITCH,
1898 fdai->event_info.priv_data);
1899
1900 msm_pcm_routing_build_matrix(val, session_type,
1901 path_type,
1902 fdai->perf_mode,
1903 passthr_mode);
1904 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1905 (passthr_mode == LEGACY_PCM))
1906 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1907 copp_idx, topology,
1908 channels);
1909 }
1910 } else {
1911 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1912 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1913 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1914 voc_start_playback(set, msm_bedais[reg].port_id);
1915 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
1916 fdai = &fe_dai_map[val][session_type];
1917 if (msm_bedais[reg].active && fdai->strm_id !=
1918 INVALID_SESSION) {
1919 int idx;
1920 int port_id;
1921 unsigned long copp =
1922 session_copp_map[val][session_type][reg];
1923 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1924 if (test_bit(idx, &copp))
1925 break;
1926
1927 port_id = msm_bedais[reg].port_id;
1928 topology = adm_get_topology_for_port_copp_idx(port_id,
1929 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001930 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301931 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1932 idx);
1933 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1934 __func__, copp, val, session_type, reg,
1935 topology);
1936 clear_bit(idx,
1937 &session_copp_map[val][session_type][reg]);
1938 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1939 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1940 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1941 (passthr_mode == LEGACY_PCM))
1942 msm_pcm_routing_deinit_pp(
1943 msm_bedais[reg].port_id,
1944 topology);
1945 msm_pcm_routing_build_matrix(val, session_type,
1946 path_type,
1947 fdai->perf_mode,
1948 passthr_mode);
1949 }
1950 }
1951 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1952 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1953 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1954
1955 mutex_unlock(&routing_lock);
1956}
1957
1958static int msm_routing_get_audio_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_audio_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
1984 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001985 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1986 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301987 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1988 update);
1989 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001990 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1991 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301992 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1993 update);
1994 }
1995
1996 return 1;
1997}
1998
1999static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2000 struct snd_ctl_elem_value *ucontrol)
2001{
2002 struct soc_mixer_control *mc =
2003 (struct soc_mixer_control *)kcontrol->private_value;
2004
Meng Wang05d5e9a2018-03-28 16:45:03 +08002005 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302006 ucontrol->value.integer.value[0] = 1;
2007 else
2008 ucontrol->value.integer.value[0] = 0;
2009
Meng Wang05d5e9a2018-03-28 16:45:03 +08002010 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302011 ucontrol->value.integer.value[0]);
2012
2013 return 0;
2014}
2015
2016static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2017 struct snd_ctl_elem_value *ucontrol)
2018{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302019 struct snd_soc_dapm_widget *widget =
2020 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302021 struct soc_mixer_control *mc =
2022 (struct soc_mixer_control *)kcontrol->private_value;
2023 struct snd_soc_dapm_update *update = NULL;
2024
Meng Wang05d5e9a2018-03-28 16:45:03 +08002025 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302026 ucontrol->value.integer.value[0]);
2027
2028 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002029 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2030 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302031 snd_soc_dapm_mixer_update_power(widget->dapm,
2032 kcontrol, 1, update);
2033 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002034 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2035 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302036 snd_soc_dapm_mixer_update_power(widget->dapm,
2037 kcontrol, 0, update);
2038 }
2039
2040 return 1;
2041}
2042
2043static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2044{
2045 u32 session_id = 0;
2046 u16 path_type;
2047 struct media_format_info voc_be_media_format;
2048
2049 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2050
2051 session_id = msm_pcm_routing_get_voc_sessionid(val);
2052
2053 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2054 __func__, val, session_id);
2055
2056 mutex_lock(&routing_lock);
2057
2058 if (set)
2059 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2060 else
2061 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2062
2063 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2064 afe_get_port_type(msm_bedais[reg].port_id) ==
2065 MSM_AFE_PORT_TYPE_RX) {
2066 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2067 __func__, set, msm_bedais[reg].port_id);
2068 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2069 }
2070
2071 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2072 MSM_AFE_PORT_TYPE_RX)
2073 path_type = RX_PATH;
2074 else
2075 path_type = TX_PATH;
2076
2077 if (set) {
2078 if (msm_bedais[reg].active) {
2079 voc_set_route_flag(session_id, path_type, 1);
2080
2081 memset(&voc_be_media_format, 0,
2082 sizeof(struct media_format_info));
2083
2084 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2085 voc_be_media_format.num_channels =
2086 msm_bedais[reg].channel;
2087 voc_be_media_format.sample_rate =
2088 msm_bedais[reg].sample_rate;
2089 voc_be_media_format.bits_per_sample =
2090 msm_bedais[reg].format;
2091 /* Defaulting this to 1 for voice call usecases */
2092 voc_be_media_format.channel_mapping[0] = 1;
2093
2094 voc_set_device_config(session_id, path_type,
2095 &voc_be_media_format);
2096
2097 if (voc_get_route_flag(session_id, TX_PATH) &&
2098 voc_get_route_flag(session_id, RX_PATH))
2099 voc_enable_device(session_id);
2100 } else {
2101 pr_debug("%s BE is not active\n", __func__);
2102 }
2103 } else {
2104 voc_set_route_flag(session_id, path_type, 0);
2105 voc_disable_device(session_id);
2106 }
2107
2108 mutex_unlock(&routing_lock);
2109
2110}
2111
2112static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2113 struct snd_ctl_elem_value *ucontrol)
2114{
2115 struct soc_mixer_control *mc =
2116 (struct soc_mixer_control *)kcontrol->private_value;
2117
2118 mutex_lock(&routing_lock);
2119
Meng Wang05d5e9a2018-03-28 16:45:03 +08002120 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302121 ucontrol->value.integer.value[0] = 1;
2122 else
2123 ucontrol->value.integer.value[0] = 0;
2124
2125 mutex_unlock(&routing_lock);
2126
Meng Wang05d5e9a2018-03-28 16:45:03 +08002127 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302128 ucontrol->value.integer.value[0]);
2129
2130 return 0;
2131}
2132
2133static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2134 struct snd_ctl_elem_value *ucontrol)
2135{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302136 struct snd_soc_dapm_widget *widget =
2137 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302138 struct soc_mixer_control *mc =
2139 (struct soc_mixer_control *)kcontrol->private_value;
2140 struct snd_soc_dapm_update *update = NULL;
2141
2142 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002143 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302144 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2145 update);
2146 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002147 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302148 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2149 update);
2150 }
2151
2152 return 1;
2153}
2154
2155static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2156 struct snd_ctl_elem_value *ucontrol)
2157{
2158 struct soc_mixer_control *mc =
2159 (struct soc_mixer_control *)kcontrol->private_value;
2160
2161 mutex_lock(&routing_lock);
2162
Meng Wang05d5e9a2018-03-28 16:45:03 +08002163 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302164 ucontrol->value.integer.value[0] = 1;
2165 else
2166 ucontrol->value.integer.value[0] = 0;
2167
2168 mutex_unlock(&routing_lock);
2169
Meng Wang05d5e9a2018-03-28 16:45:03 +08002170 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302171 ucontrol->value.integer.value[0]);
2172
2173 return 0;
2174}
2175
2176static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2177 struct snd_ctl_elem_value *ucontrol)
2178{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302179 struct snd_soc_dapm_widget *widget =
2180 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302181 struct soc_mixer_control *mc =
2182 (struct soc_mixer_control *)kcontrol->private_value;
2183 struct snd_soc_dapm_update *update = NULL;
2184
2185 if (ucontrol->value.integer.value[0]) {
2186 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002187 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302188 mutex_unlock(&routing_lock);
2189
2190 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2191 update);
2192 } else {
2193 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002194 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302195 mutex_unlock(&routing_lock);
2196
2197 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2198 update);
2199 }
2200
Meng Wang05d5e9a2018-03-28 16:45:03 +08002201 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302202 ucontrol->value.integer.value[0]);
2203
2204 return 1;
2205}
2206
2207/*
2208 * Return the mapping between port ID and backend ID to enable the AFE callback
2209 * to determine the acdb_dev_id from the port id
2210 */
2211int msm_pcm_get_be_id_from_port_id(int port_id)
2212{
2213 int i;
2214 int be_id = -EINVAL;
2215
2216 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2217 if (msm_bedais[i].port_id == port_id) {
2218 be_id = i;
2219 break;
2220 }
2221 }
2222
2223 return be_id;
2224}
2225
2226/*
2227 * Return the registered dev_acdb_id given a port ID to enable identifying the
2228 * correct AFE calibration information by comparing the header information.
2229 */
2230static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2231{
2232 int acdb_id = -EINVAL;
2233 int i = 0;
2234 int session;
2235 int port_type = afe_get_port_type(port_id);
2236 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2237
2238 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2239 __func__, port_id, be_id, port_type);
2240
2241 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2242 session = SESSION_TYPE_TX;
2243 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2244 session = SESSION_TYPE_RX;
2245 } else {
2246 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2247 acdb_id = -EINVAL;
2248 goto exit;
2249 }
2250
2251 if (be_id < 0) {
2252 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2253 goto exit;
2254 }
2255
2256 mutex_lock(&routing_lock);
2257 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2258 MSM_FRONTEND_DAI_MAX);
2259 if (i < MSM_FRONTEND_DAI_MAX)
2260 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2261
2262 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2263 __func__, i, session, be_id, acdb_id);
2264 mutex_unlock(&routing_lock);
2265exit:
2266 return acdb_id;
2267}
2268
2269static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2270 struct snd_ctl_elem_value *ucontrol)
2271{
2272 ucontrol->value.integer.value[0] = fm_switch_enable;
2273 pr_debug("%s: FM Switch enable %ld\n", __func__,
2274 ucontrol->value.integer.value[0]);
2275 return 0;
2276}
2277
2278static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2279 struct snd_ctl_elem_value *ucontrol)
2280{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302281 struct snd_soc_dapm_widget *widget =
2282 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302283 struct snd_soc_dapm_update *update = NULL;
2284
2285 pr_debug("%s: FM Switch enable %ld\n", __func__,
2286 ucontrol->value.integer.value[0]);
2287 if (ucontrol->value.integer.value[0])
2288 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2289 update);
2290 else
2291 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2292 update);
2293 fm_switch_enable = ucontrol->value.integer.value[0];
2294 return 1;
2295}
2296
2297static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2298 struct snd_ctl_elem_value *ucontrol)
2299{
2300 ucontrol->value.integer.value[0] = hfp_switch_enable;
2301 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2302 ucontrol->value.integer.value[0]);
2303 return 0;
2304}
2305
2306static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2307 struct snd_ctl_elem_value *ucontrol)
2308{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302309 struct snd_soc_dapm_widget *widget =
2310 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302311 struct snd_soc_dapm_update *update = NULL;
2312
2313 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2314 ucontrol->value.integer.value[0]);
2315 if (ucontrol->value.integer.value[0])
2316 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2317 1, update);
2318 else
2319 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2320 0, update);
2321 hfp_switch_enable = ucontrol->value.integer.value[0];
2322 return 1;
2323}
2324
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002325static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2326 struct snd_ctl_elem_value *ucontrol)
2327{
2328 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2329 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2330 ucontrol->value.integer.value[0]);
2331 return 0;
2332}
2333
2334static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2335 struct snd_ctl_elem_value *ucontrol)
2336{
2337 struct snd_soc_dapm_widget *widget =
2338 snd_soc_dapm_kcontrol_widget(kcontrol);
2339 struct snd_soc_dapm_update *update = NULL;
2340
2341 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2342 ucontrol->value.integer.value[0]);
2343 a2dp_switch_enable = ucontrol->value.integer.value[0];
2344 if (a2dp_switch_enable)
2345 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2346 1, update);
2347 else
2348 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2349 0, update);
2350 return 1;
2351}
2352
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302353static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2354 struct snd_ctl_elem_value *ucontrol)
2355{
2356 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2357 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2358 ucontrol->value.integer.value[0]);
2359 return 0;
2360}
2361
2362static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2363 struct snd_ctl_elem_value *ucontrol)
2364{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302365 struct snd_soc_dapm_widget *widget =
2366 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302367 struct snd_soc_dapm_update *update = NULL;
2368
2369 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2370 ucontrol->value.integer.value[0]);
2371 if (ucontrol->value.integer.value[0])
2372 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2373 update);
2374 else
2375 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2376 update);
2377 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2378 return 1;
2379}
2380
2381static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2382 struct snd_ctl_elem_value *ucontrol)
2383{
2384 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2385 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2386 ucontrol->value.integer.value[0]);
2387 return 0;
2388}
2389
2390static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2391 struct snd_ctl_elem_value *ucontrol)
2392{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302393 struct snd_soc_dapm_widget *widget =
2394 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302395 struct snd_soc_dapm_update *update = NULL;
2396
2397 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2398 ucontrol->value.integer.value[0]);
2399 if (ucontrol->value.integer.value[0])
2400 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2401 update);
2402 else
2403 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2404 update);
2405 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2406 return 1;
2407}
2408
2409static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2410 struct snd_ctl_elem_value *ucontrol)
2411{
2412 ucontrol->value.integer.value[0] = usb_switch_enable;
2413 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2414 ucontrol->value.integer.value[0]);
2415 return 0;
2416}
2417
2418static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2419 struct snd_ctl_elem_value *ucontrol)
2420{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302421 struct snd_soc_dapm_widget *widget =
2422 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302423 struct snd_soc_dapm_update *update = NULL;
2424
2425 pr_debug("%s: USB Switch enable %ld\n", __func__,
2426 ucontrol->value.integer.value[0]);
2427 if (ucontrol->value.integer.value[0])
2428 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2429 1, update);
2430 else
2431 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2432 0, update);
2433 usb_switch_enable = ucontrol->value.integer.value[0];
2434 return 1;
2435}
2436
2437static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2438 struct snd_ctl_elem_value *ucontrol)
2439{
2440 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2441 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2442 ucontrol->value.integer.value[0]);
2443 return 0;
2444}
2445
2446static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2447 struct snd_ctl_elem_value *ucontrol)
2448{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302449 struct snd_soc_dapm_widget *widget =
2450 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302451 struct snd_soc_dapm_update *update = NULL;
2452
2453 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2454 ucontrol->value.integer.value[0]);
2455 if (ucontrol->value.integer.value[0])
2456 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2457 update);
2458 else
2459 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2460 update);
2461 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2462 return 1;
2463}
2464
2465static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2466 struct snd_ctl_elem_value *ucontrol)
2467{
2468 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2469 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2470 ucontrol->value.integer.value[0]);
2471 return 0;
2472}
2473
2474static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2475 struct snd_ctl_elem_value *ucontrol)
2476{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302477 struct snd_soc_dapm_widget *widget =
2478 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302479 struct snd_soc_dapm_update *update = NULL;
2480
2481 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2482 ucontrol->value.integer.value[0]);
2483 if (ucontrol->value.integer.value[0])
2484 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2485 update);
2486 else
2487 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2488 update);
2489 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2490 return 1;
2491}
2492
2493static int msm_routing_get_tert_mi2s_switch_mixer(
2494 struct snd_kcontrol *kcontrol,
2495 struct snd_ctl_elem_value *ucontrol)
2496{
2497 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2498 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2499 ucontrol->value.integer.value[0]);
2500 return 0;
2501}
2502
2503static int msm_routing_put_tert_mi2s_switch_mixer(
2504 struct snd_kcontrol *kcontrol,
2505 struct snd_ctl_elem_value *ucontrol)
2506{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302507 struct snd_soc_dapm_widget *widget =
2508 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302509 struct snd_soc_dapm_update *update = NULL;
2510
2511 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2512 ucontrol->value.integer.value[0]);
2513 if (ucontrol->value.integer.value[0])
2514 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2515 update);
2516 else
2517 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2518 update);
2519 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2520 return 1;
2521}
2522
2523static int msm_routing_get_quat_mi2s_switch_mixer(
2524 struct snd_kcontrol *kcontrol,
2525 struct snd_ctl_elem_value *ucontrol)
2526{
2527 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2528 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2529 ucontrol->value.integer.value[0]);
2530 return 0;
2531}
2532
2533static int msm_routing_put_quat_mi2s_switch_mixer(
2534 struct snd_kcontrol *kcontrol,
2535 struct snd_ctl_elem_value *ucontrol)
2536{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302537 struct snd_soc_dapm_widget *widget =
2538 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302539 struct snd_soc_dapm_update *update = NULL;
2540
2541 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2542 ucontrol->value.integer.value[0]);
2543 if (ucontrol->value.integer.value[0])
2544 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2545 update);
2546 else
2547 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2548 update);
2549 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2550 return 1;
2551}
2552
Rohit Kumara5077932017-09-10 22:05:05 +05302553static int msm_routing_get_quin_mi2s_switch_mixer(
2554 struct snd_kcontrol *kcontrol,
2555 struct snd_ctl_elem_value *ucontrol)
2556{
2557 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2558 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2559 ucontrol->value.integer.value[0]);
2560 return 0;
2561}
2562
2563static int msm_routing_put_quin_mi2s_switch_mixer(
2564 struct snd_kcontrol *kcontrol,
2565 struct snd_ctl_elem_value *ucontrol)
2566{
2567 struct snd_soc_dapm_widget *widget =
2568 snd_soc_dapm_kcontrol_widget(kcontrol);
2569 struct snd_soc_dapm_update *update = NULL;
2570
2571 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2572 ucontrol->value.integer.value[0]);
2573 if (ucontrol->value.integer.value[0])
2574 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2575 update);
2576 else
2577 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2578 update);
2579 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2580 return 1;
2581}
2582
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302583static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2584 struct snd_ctl_elem_value *ucontrol)
2585{
2586 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2587 pr_debug("%s: FM Switch enable %ld\n", __func__,
2588 ucontrol->value.integer.value[0]);
2589 return 0;
2590}
2591
2592static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2593 struct snd_ctl_elem_value *ucontrol)
2594{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302595 struct snd_soc_dapm_widget *widget =
2596 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302597 struct snd_soc_dapm_update *update = NULL;
2598
2599 pr_debug("%s: FM Switch enable %ld\n", __func__,
2600 ucontrol->value.integer.value[0]);
2601 if (ucontrol->value.integer.value[0])
2602 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2603 update);
2604 else
2605 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2606 update);
2607 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2608 return 1;
2609}
2610
2611static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2612 struct snd_ctl_elem_value *ucontrol)
2613{
2614 ucontrol->value.integer.value[0] = lsm_port_index;
2615 return 0;
2616}
2617
2618static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2619 struct snd_ctl_elem_value *ucontrol)
2620{
2621 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2622 int mux = ucontrol->value.enumerated.item[0];
2623 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2624
2625 if (mux >= e->items) {
2626 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2627 return -EINVAL;
2628 }
2629
2630 pr_debug("%s: LSM enable %ld\n", __func__,
2631 ucontrol->value.integer.value[0]);
2632 switch (ucontrol->value.integer.value[0]) {
2633 case 1:
2634 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2635 break;
2636 case 2:
2637 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2638 break;
2639 case 3:
2640 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2641 break;
2642 case 4:
2643 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2644 break;
2645 case 5:
2646 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2647 break;
2648 case 6:
2649 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2650 break;
2651 case 7:
2652 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2653 break;
2654 case 8:
2655 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2656 break;
2657 case 9:
2658 lsm_port = ADM_LSM_PORT_ID;
2659 break;
2660 case 10:
2661 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2662 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302663 case 11:
2664 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2665 break;
2666 case 12:
2667 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2668 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302669 case 13:
2670 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2671 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302672 default:
2673 pr_err("Default lsm port");
2674 break;
2675 }
2676 set_lsm_port(lsm_port);
2677 lsm_port_index = ucontrol->value.integer.value[0];
2678
2679 return 0;
2680}
2681
2682static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2683 struct snd_ctl_elem_value *ucontrol)
2684{
2685 int i;
2686 u16 port_id;
2687 enum afe_mad_type mad_type;
2688
2689 pr_debug("%s: enter\n", __func__);
2690 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2691 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2692 strlen(lsm_port_text[i])))
2693 break;
2694
2695 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2696 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2697 return -EINVAL;
2698 }
2699
2700 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2701
2702 /*Check for Tertiary/Quaternary/INT3 TX port*/
2703 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2704 strlen(lsm_port_text[7])))
2705 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2706
2707 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2708 strlen(lsm_port_text[8])))
2709 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2710
2711 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2712 strlen(lsm_port_text[10])))
2713 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2714
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302715 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2716 strlen(lsm_port_text[13])))
2717 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2718
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302719 mad_type = afe_port_get_mad_type(port_id);
2720 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2721 mad_type);
2722 switch (mad_type) {
2723 case MAD_HW_NONE:
2724 ucontrol->value.integer.value[0] = MADNONE;
2725 break;
2726 case MAD_HW_AUDIO:
2727 ucontrol->value.integer.value[0] = MADAUDIO;
2728 break;
2729 case MAD_HW_BEACON:
2730 ucontrol->value.integer.value[0] = MADBEACON;
2731 break;
2732 case MAD_HW_ULTRASOUND:
2733 ucontrol->value.integer.value[0] = MADULTRASOUND;
2734 break;
2735 case MAD_SW_AUDIO:
2736 ucontrol->value.integer.value[0] = MADSWAUDIO;
2737 break;
2738 default:
2739 WARN(1, "Unknown\n");
2740 return -EINVAL;
2741 }
2742 return 0;
2743}
2744
2745static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2746 struct snd_ctl_elem_value *ucontrol)
2747{
2748 int i;
2749 u16 port_id;
2750 enum afe_mad_type mad_type;
2751
2752 pr_debug("%s: enter\n", __func__);
2753 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2754 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2755 strlen(lsm_port_text[i])))
2756 break;
2757
2758 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2759 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2760 return -EINVAL;
2761 }
2762
2763 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2764 switch (ucontrol->value.integer.value[0]) {
2765 case MADNONE:
2766 mad_type = MAD_HW_NONE;
2767 break;
2768 case MADAUDIO:
2769 mad_type = MAD_HW_AUDIO;
2770 break;
2771 case MADBEACON:
2772 mad_type = MAD_HW_BEACON;
2773 break;
2774 case MADULTRASOUND:
2775 mad_type = MAD_HW_ULTRASOUND;
2776 break;
2777 case MADSWAUDIO:
2778 mad_type = MAD_SW_AUDIO;
2779 break;
2780 default:
2781 WARN(1, "Unknown\n");
2782 return -EINVAL;
2783 }
2784
2785 /*Check for Tertiary/Quaternary/INT3 TX port*/
2786 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2787 strlen(lsm_port_text[7])))
2788 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2789
2790 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2791 strlen(lsm_port_text[8])))
2792 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2793
2794 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2795 strlen(lsm_port_text[10])))
2796 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2797
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302798 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2799 strlen(lsm_port_text[13])))
2800 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2801
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302802 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2803 mad_type);
2804 return afe_port_set_mad_type(port_id, mad_type);
2805}
2806
2807static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2808
2809static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2810 adm_override_chs_text);
2811
2812static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2813{
2814 int backend_id;
2815
2816 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2817 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2818 } else {
2819 pr_err("%s: unsupported backend id: %s",
2820 __func__, kcontrol->id.name);
2821 return -EINVAL;
2822 }
2823
2824 return backend_id;
2825}
2826static int msm_routing_adm_channel_config_get(
2827 struct snd_kcontrol *kcontrol,
2828 struct snd_ctl_elem_value *ucontrol)
2829{
2830 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2831
2832 if (backend_id >= 0) {
2833 mutex_lock(&routing_lock);
2834 ucontrol->value.integer.value[0] =
2835 msm_bedais[backend_id].adm_override_ch;
2836 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2837 ucontrol->value.integer.value[0], backend_id);
2838 mutex_unlock(&routing_lock);
2839 }
2840
2841 return 0;
2842}
2843
2844static int msm_routing_adm_channel_config_put(
2845 struct snd_kcontrol *kcontrol,
2846 struct snd_ctl_elem_value *ucontrol)
2847{
2848 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2849
2850 if (backend_id >= 0) {
2851 mutex_lock(&routing_lock);
2852 msm_bedais[backend_id].adm_override_ch =
2853 ucontrol->value.integer.value[0];
2854 pr_debug("%s:updating BE :%d adm channels: %d\n",
2855 __func__, backend_id,
2856 msm_bedais[backend_id].adm_override_ch);
2857 mutex_unlock(&routing_lock);
2858 }
2859
2860 return 0;
2861}
2862
2863static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2864 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2865 msm_routing_adm_channel_config_get,
2866 msm_routing_adm_channel_config_put),
2867};
2868
2869static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2870 struct snd_ctl_elem_value *ucontrol)
2871{
2872
2873 mutex_lock(&routing_lock);
2874 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2875 mutex_unlock(&routing_lock);
2876 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2877 ucontrol->value.integer.value[0]);
2878 return 0;
2879};
2880
2881static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2882 struct snd_ctl_elem_value *ucontrol)
2883{
2884 struct aanc_data aanc_info;
2885
2886 mutex_lock(&routing_lock);
2887 memset(&aanc_info, 0x00, sizeof(aanc_info));
2888 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2889 ucontrol->value.integer.value[0]);
2890 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2891 if (ucontrol->value.integer.value[0] == 0) {
2892 aanc_info.aanc_active = false;
2893 aanc_info.aanc_tx_port = 0;
2894 aanc_info.aanc_rx_port = 0;
2895 } else {
2896 aanc_info.aanc_active = true;
2897 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2898 aanc_info.aanc_tx_port =
2899 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2900 }
2901 afe_set_aanc_info(&aanc_info);
2902 mutex_unlock(&routing_lock);
2903 return 0;
2904};
2905static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2906 struct snd_ctl_elem_value *ucontrol)
2907{
2908 int idx = 0, shift = 0;
2909 struct soc_mixer_control *mc =
2910 (struct soc_mixer_control *)kcontrol->private_value;
2911
Meng Wang05d5e9a2018-03-28 16:45:03 +08002912 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2913 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302914
2915 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2916 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2917 return -EINVAL;
2918 }
2919
2920 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002921 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302922 ucontrol->value.integer.value[0] = 1;
2923 else
2924 ucontrol->value.integer.value[0] = 0;
2925
Meng Wang05d5e9a2018-03-28 16:45:03 +08002926 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302927 ucontrol->value.integer.value[0]);
2928
2929 return 0;
2930}
2931
2932static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2933 struct snd_ctl_elem_value *ucontrol)
2934{
2935 int idx = 0, shift = 0;
2936 struct soc_mixer_control *mc =
2937 (struct soc_mixer_control *)kcontrol->private_value;
2938
Meng Wang05d5e9a2018-03-28 16:45:03 +08002939 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2940 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302941
2942 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2943 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2944 return -EINVAL;
2945 }
2946
Meng Wang05d5e9a2018-03-28 16:45:03 +08002947 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2948 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302949 ucontrol->value.integer.value[0], idx, shift);
2950
2951 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002952 afe_loopback(1, msm_bedais[mc->shift].port_id,
2953 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302954 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002955 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302956 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002957 afe_loopback(0, msm_bedais[mc->shift].port_id,
2958 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302959 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002960 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302961 }
2962
2963 return 1;
2964}
2965
2966static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2967 struct snd_ctl_elem_value *ucontrol)
2968{
2969 u16 fe_id = 0;
2970
2971 fe_id = ((struct soc_mixer_control *)
2972 kcontrol->private_value)->shift;
2973 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2974 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2975 return -EINVAL;
2976 }
2977
2978 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2979
2980 return 0;
2981}
2982
2983static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2984 struct snd_ctl_elem_value *ucontrol)
2985{
2986 u16 fe_id = 0;
2987
2988 fe_id = ((struct soc_mixer_control *)
2989 kcontrol->private_value)->shift;
2990 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2991 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2992 return -EINVAL;
2993 }
2994
2995 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
2996
2997 return 1;
2998}
2999
3000static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3001 struct snd_ctl_elem_value *ucontrol)
3002{
3003 u16 fe_id = 0;
3004
3005 fe_id = ((struct soc_multi_mixer_control *)
3006 kcontrol->private_value)->shift;
3007 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3008 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3009 return -EINVAL;
3010 }
3011
3012 ucontrol->value.integer.value[0] =
3013 channel_mixer[fe_id].output_channel;
3014 return 0;
3015}
3016
3017static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3018 struct snd_ctl_elem_value *ucontrol)
3019{
3020 u16 fe_id = 0;
3021
3022 fe_id = ((struct soc_multi_mixer_control *)
3023 kcontrol->private_value)->shift;
3024 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3025 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3026 return -EINVAL;
3027 }
3028
3029 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3030 fe_id,
3031 (unsigned int)(ucontrol->value.integer.value[0]));
3032 channel_mixer[fe_id].output_channel =
3033 (unsigned int)(ucontrol->value.integer.value[0]);
3034
3035 return 1;
3036}
3037
3038static const char *const ch_mixer[] = {"Disable", "Enable"};
3039
3040/* If new backend is added, need update this array */
3041static const char *const be_name[] = {
3042"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3043"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3044"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3045"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3046"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3047"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3048"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3049"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3050"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3051"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3052"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3053"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003054"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303055"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3056"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3057"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3058"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3059"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3060"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3061"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3062"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3063"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3064"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3065"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3066"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3067"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3068"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3069"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3070"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3071"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303072"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3073"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3074"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3075"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003076"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303077"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303078"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303079"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3080"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3081"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303082"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3083"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003084"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303085"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3086"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3087"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3088"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3089"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303090};
3091
3092static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3093 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3094static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3095 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3096static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3097 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3098static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3099 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3100
3101static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3102 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3103static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3104 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3105static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3106 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3107static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3108 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3109static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3110 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3111static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3112 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3113static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3114 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3115static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3116 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3117
3118static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3119 unsigned int channels,
3120 unsigned int items, const char *const names[])
3121{
3122 if (uinfo->value.enumerated.item >= items)
3123 uinfo->value.enumerated.item = items - 1;
3124
3125 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3126 sizeof(uinfo->value.enumerated.name),
3127 "ALSA: too long item name '%s'\n",
3128 names[uinfo->value.enumerated.item]);
3129 strlcpy(uinfo->value.enumerated.name,
3130 names[uinfo->value.enumerated.item],
3131 sizeof(uinfo->value.enumerated.name));
3132 return 0;
3133}
3134
3135static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3136 struct snd_ctl_elem_info *uinfo)
3137{
3138 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3139
3140 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3141 uinfo->count = 1;
3142
3143 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3144 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3145
3146 return 0;
3147}
3148static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3149 struct snd_ctl_elem_value *ucontrol)
3150{
3151 u16 fe_id = 0;
3152
3153 fe_id = ((struct soc_enum *)
3154 kcontrol->private_value)->shift_l;
3155 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3156 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3157 return -EINVAL;
3158 }
3159
3160 pr_debug("%s: FE %d %s\n", __func__,
3161 fe_id,
3162 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3163 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3164 return 0;
3165}
3166
3167static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3168 struct snd_ctl_elem_value *ucontrol)
3169{
3170 u16 fe_id = 0;
3171
3172 fe_id = ((struct soc_enum *)
3173 kcontrol->private_value)->shift_l;
3174 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3175 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3176 return -EINVAL;
3177 }
3178
3179 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3180 pr_debug("%s: %s FE %d\n", __func__,
3181 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3182 fe_id);
3183 return 0;
3184}
3185
3186static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3187 struct snd_ctl_elem_info *uinfo)
3188{
3189 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3190
3191 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3192 uinfo->count = 1;
3193
3194 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3195 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3196
3197 return 0;
3198}
3199
3200static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3201 struct snd_ctl_elem_value *ucontrol)
3202{
3203 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3204 u16 fe_id = 0, in_ch = 0;
3205
3206 fe_id = e->shift_l;
3207 in_ch = e->shift_r;
3208 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3209 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3210 return -EINVAL;
3211 }
3212 if (in_ch >= ADM_MAX_CHANNELS) {
3213 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3214 return -EINVAL;
3215 }
3216
3217 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3218 return 1;
3219}
3220
3221static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3222 struct snd_ctl_elem_value *ucontrol)
3223{
3224 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3225 u16 fe_id = 0, in_ch = 0;
3226
3227 fe_id = e->shift_l;
3228 in_ch = e->shift_r;
3229 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3230 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3231 return -EINVAL;
3232 }
3233 if (in_ch >= ADM_MAX_CHANNELS) {
3234 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3235 return -EINVAL;
3236 }
3237
3238 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3239 return 1;
3240}
3241
3242
3243static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3244 struct snd_ctl_elem_info *uinfo)
3245{
3246 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3247 uinfo->count = ADM_MAX_CHANNELS;
3248 uinfo->value.integer.min = 0;
3249 uinfo->value.integer.max = WEIGHT_0_DB;
3250
3251 return 0;
3252}
3253
3254static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3255 struct snd_ctl_elem_value *ucontrol)
3256{
3257 u16 fe_id = 0, out_ch = 0;
3258 int i, weight;
3259
3260 fe_id = ((struct soc_multi_mixer_control *)
3261 kcontrol->private_value)->shift;
3262 out_ch = ((struct soc_multi_mixer_control *)
3263 kcontrol->private_value)->rshift;
3264 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3265 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3266 return -EINVAL;
3267 }
3268 if (out_ch >= ADM_MAX_CHANNELS) {
3269 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3270 return -EINVAL;
3271 }
3272
3273 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3274 __func__, fe_id,
3275 ucontrol->value.integer.value[0],
3276 ucontrol->value.integer.value[1],
3277 ucontrol->value.integer.value[2],
3278 ucontrol->value.integer.value[3],
3279 ucontrol->value.integer.value[4],
3280 ucontrol->value.integer.value[5],
3281 ucontrol->value.integer.value[6],
3282 ucontrol->value.integer.value[7]);
3283
3284 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3285 weight = ucontrol->value.integer.value[i];
3286 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3287 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3288 __func__, fe_id, out_ch, i,
3289 channel_mixer[fe_id].channel_weight[out_ch][i]);
3290 }
3291
3292 return 0;
3293}
3294
3295static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3296 struct snd_ctl_elem_value *ucontrol)
3297{
3298 u16 fe_id = 0, out_ch = 0;
3299 int i;
3300
3301 fe_id = ((struct soc_multi_mixer_control *)
3302 kcontrol->private_value)->shift;
3303 out_ch = ((struct soc_multi_mixer_control *)
3304 kcontrol->private_value)->rshift;
3305 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3306 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3307 return -EINVAL;
3308 }
3309 if (out_ch >= ADM_MAX_CHANNELS) {
3310 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3311 return -EINVAL;
3312 }
3313
3314 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3315 ucontrol->value.integer.value[i] =
3316 channel_mixer[fe_id].channel_weight[out_ch][i];
3317
3318 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3319 __func__, fe_id,
3320 ucontrol->value.integer.value[0],
3321 ucontrol->value.integer.value[1],
3322 ucontrol->value.integer.value[2],
3323 ucontrol->value.integer.value[3],
3324 ucontrol->value.integer.value[4],
3325 ucontrol->value.integer.value[5],
3326 ucontrol->value.integer.value[6],
3327 ucontrol->value.integer.value[7]);
3328
3329 return 0;
3330}
3331
3332static const struct snd_kcontrol_new channel_mixer_controls[] = {
3333 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3334 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3335 msm_pcm_get_channel_rule_index,
3336 msm_pcm_put_channel_rule_index),
3337 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3338 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3339 msm_pcm_get_channel_rule_index,
3340 msm_pcm_put_channel_rule_index),
3341 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3342 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3343 msm_pcm_get_channel_rule_index,
3344 msm_pcm_put_channel_rule_index),
3345 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3346 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3347 msm_pcm_get_channel_rule_index,
3348 msm_pcm_put_channel_rule_index),
3349 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3350 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3351 msm_pcm_get_channel_rule_index,
3352 msm_pcm_put_channel_rule_index),
3353 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3354 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3355 msm_pcm_get_channel_rule_index,
3356 msm_pcm_put_channel_rule_index),
3357
3358 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3359 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3360 msm_pcm_get_out_chs,
3361 msm_pcm_put_out_chs),
3362 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3363 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3364 msm_pcm_get_out_chs,
3365 msm_pcm_put_out_chs),
3366 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3367 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3368 msm_pcm_get_out_chs,
3369 msm_pcm_put_out_chs),
3370 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3371 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3372 msm_pcm_get_out_chs,
3373 msm_pcm_put_out_chs),
3374 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3375 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3376 msm_pcm_get_out_chs,
3377 msm_pcm_put_out_chs),
3378 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3379 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3380 msm_pcm_get_out_chs,
3381 msm_pcm_put_out_chs),
3382 {
3383 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3384 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3385 .name = "MultiMedia1 Channel Mixer",
3386 .info = msm_pcm_channel_mixer_info,
3387 .get = msm_pcm_channel_mixer_get,
3388 .put = msm_pcm_channel_mixer_put,
3389 .private_value = (unsigned long)&(mm1_channel_mux)
3390 },
3391 {
3392 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3393 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3394 .name = "MultiMedia2 Channel Mixer",
3395 .info = msm_pcm_channel_mixer_info,
3396 .get = msm_pcm_channel_mixer_get,
3397 .put = msm_pcm_channel_mixer_put,
3398 .private_value = (unsigned long)&(mm2_channel_mux)
3399 },
3400 {
3401 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3402 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3403 .name = "MultiMedia3 Channel Mixer",
3404 .info = msm_pcm_channel_mixer_info,
3405 .get = msm_pcm_channel_mixer_get,
3406 .put = msm_pcm_channel_mixer_put,
3407 .private_value = (unsigned long)&(mm3_channel_mux)
3408 },
3409 {
3410 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3411 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3412 .name = "MultiMedia4 Channel Mixer",
3413 .info = msm_pcm_channel_mixer_info,
3414 .get = msm_pcm_channel_mixer_get,
3415 .put = msm_pcm_channel_mixer_put,
3416 .private_value = (unsigned long)&(mm4_channel_mux)
3417 },
3418 {
3419 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3420 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3421 .name = "MultiMedia1 Output Channel1",
3422 .info = msm_pcm_channel_weight_info,
3423 .get = msm_pcm_channel_weight_get,
3424 .put = msm_pcm_channel_weight_put,
3425 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3426 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3427 },
3428 {
3429 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3430 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3431 .name = "MultiMedia1 Output Channel2",
3432 .info = msm_pcm_channel_weight_info,
3433 .get = msm_pcm_channel_weight_get,
3434 .put = msm_pcm_channel_weight_put,
3435 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3436 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3437 },
3438 {
3439 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3440 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3441 .name = "MultiMedia1 Output Channel3",
3442 .info = msm_pcm_channel_weight_info,
3443 .get = msm_pcm_channel_weight_get,
3444 .put = msm_pcm_channel_weight_put,
3445 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3446 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3447 },
3448 {
3449 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3450 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3451 .name = "MultiMedia1 Output Channel4",
3452 .info = msm_pcm_channel_weight_info,
3453 .get = msm_pcm_channel_weight_get,
3454 .put = msm_pcm_channel_weight_put,
3455 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3456 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3457 },
3458 {
3459 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3460 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3461 .name = "MultiMedia1 Output Channel5",
3462 .info = msm_pcm_channel_weight_info,
3463 .get = msm_pcm_channel_weight_get,
3464 .put = msm_pcm_channel_weight_put,
3465 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3466 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3467 },
3468 {
3469 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3470 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3471 .name = "MultiMedia1 Output Channel6",
3472 .info = msm_pcm_channel_weight_info,
3473 .get = msm_pcm_channel_weight_get,
3474 .put = msm_pcm_channel_weight_put,
3475 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3476 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3477 },
3478 {
3479 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3480 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3481 .name = "MultiMedia1 Output Channel7",
3482 .info = msm_pcm_channel_weight_info,
3483 .get = msm_pcm_channel_weight_get,
3484 .put = msm_pcm_channel_weight_put,
3485 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3486 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3487 },
3488 {
3489 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3490 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3491 .name = "MultiMedia1 Output Channel8",
3492 .info = msm_pcm_channel_weight_info,
3493 .get = msm_pcm_channel_weight_get,
3494 .put = msm_pcm_channel_weight_put,
3495 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3496 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3497 },
3498 {
3499 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3500 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3501 .name = "MultiMedia2 Output Channel1",
3502 .info = msm_pcm_channel_weight_info,
3503 .get = msm_pcm_channel_weight_get,
3504 .put = msm_pcm_channel_weight_put,
3505 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3506 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3507 },
3508 {
3509 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3510 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3511 .name = "MultiMedia2 Output Channel2",
3512 .info = msm_pcm_channel_weight_info,
3513 .get = msm_pcm_channel_weight_get,
3514 .put = msm_pcm_channel_weight_put,
3515 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3516 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3517 },
3518 {
3519 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3520 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3521 .name = "MultiMedia2 Output Channel3",
3522 .info = msm_pcm_channel_weight_info,
3523 .get = msm_pcm_channel_weight_get,
3524 .put = msm_pcm_channel_weight_put,
3525 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3526 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3527 },
3528 {
3529 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3530 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3531 .name = "MultiMedia3 Output Channel1",
3532 .info = msm_pcm_channel_weight_info,
3533 .get = msm_pcm_channel_weight_get,
3534 .put = msm_pcm_channel_weight_put,
3535 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3536 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3537 },
3538 {
3539 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3540 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3541 .name = "MultiMedia3 Output Channel2",
3542 .info = msm_pcm_channel_weight_info,
3543 .get = msm_pcm_channel_weight_get,
3544 .put = msm_pcm_channel_weight_put,
3545 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3546 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3547 },
3548 {
3549 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3550 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3551 .name = "MultiMedia1 Channel1",
3552 .info = msm_pcm_channel_input_be_info,
3553 .get = msm_pcm_channel_input_be_get,
3554 .put = msm_pcm_channel_input_be_put,
3555 .private_value = (unsigned long)&(mm1_ch1_enum)
3556 },
3557 {
3558 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3559 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3560 .name = "MultiMedia1 Channel2",
3561 .info = msm_pcm_channel_input_be_info,
3562 .get = msm_pcm_channel_input_be_get,
3563 .put = msm_pcm_channel_input_be_put,
3564 .private_value = (unsigned long)&(mm1_ch2_enum)
3565 },
3566 {
3567 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3568 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3569 .name = "MultiMedia1 Channel3",
3570 .info = msm_pcm_channel_input_be_info,
3571 .get = msm_pcm_channel_input_be_get,
3572 .put = msm_pcm_channel_input_be_put,
3573 .private_value = (unsigned long)&(mm1_ch3_enum)
3574 },
3575 {
3576 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3577 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3578 .name = "MultiMedia1 Channel4",
3579 .info = msm_pcm_channel_input_be_info,
3580 .get = msm_pcm_channel_input_be_get,
3581 .put = msm_pcm_channel_input_be_put,
3582 .private_value = (unsigned long)&(mm1_ch4_enum)
3583 },
3584 {
3585 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3586 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3587 .name = "MultiMedia1 Channel5",
3588 .info = msm_pcm_channel_input_be_info,
3589 .get = msm_pcm_channel_input_be_get,
3590 .put = msm_pcm_channel_input_be_put,
3591 .private_value = (unsigned long)&(mm1_ch5_enum)
3592 },
3593 {
3594 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3595 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3596 .name = "MultiMedia1 Channel6",
3597 .info = msm_pcm_channel_input_be_info,
3598 .get = msm_pcm_channel_input_be_get,
3599 .put = msm_pcm_channel_input_be_put,
3600 .private_value = (unsigned long)&(mm1_ch6_enum)
3601 },
3602 {
3603 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3604 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3605 .name = "MultiMedia1 Channel7",
3606 .info = msm_pcm_channel_input_be_info,
3607 .get = msm_pcm_channel_input_be_get,
3608 .put = msm_pcm_channel_input_be_put,
3609 .private_value = (unsigned long)&(mm1_ch7_enum)
3610 },
3611 {
3612 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3613 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3614 .name = "MultiMedia1 Channel8",
3615 .info = msm_pcm_channel_input_be_info,
3616 .get = msm_pcm_channel_input_be_get,
3617 .put = msm_pcm_channel_input_be_put,
3618 .private_value = (unsigned long)&(mm1_ch8_enum)
3619 },
3620};
3621static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3622 struct snd_ctl_elem_value *ucontrol)
3623{
3624 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3625 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3626 ucontrol->value.integer.value[0]);
3627 return 0;
3628}
3629
3630static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3631 struct snd_ctl_elem_value *ucontrol)
3632{
3633 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3634 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3635 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3636 return 0;
3637}
3638
3639static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3640 "Four", "Five", "Six", "Seven", "Eight"};
3641
3642static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3643 struct snd_ctl_elem_value *ucontrol)
3644{
3645 switch (msm_ec_ref_bit_format) {
3646 case SNDRV_PCM_FORMAT_S24_LE:
3647 ucontrol->value.integer.value[0] = 2;
3648 break;
3649 case SNDRV_PCM_FORMAT_S16_LE:
3650 ucontrol->value.integer.value[0] = 1;
3651 break;
3652 default:
3653 ucontrol->value.integer.value[0] = 0;
3654 break;
3655 }
3656 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3657 __func__, ucontrol->value.integer.value[0]);
3658 return 0;
3659}
3660
3661static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3662 struct snd_ctl_elem_value *ucontrol)
3663{
3664 u16 bit_width = 0;
3665
3666 switch (ucontrol->value.integer.value[0]) {
3667 case 2:
3668 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3669 break;
3670 case 1:
3671 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3672 break;
3673 default:
3674 msm_ec_ref_bit_format = 0;
3675 break;
3676 }
3677
3678 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3679 bit_width = 16;
3680 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3681 bit_width = 24;
3682
3683 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3684 __func__, msm_ec_ref_bit_format);
3685 adm_ec_ref_rx_bit_width(bit_width);
3686 return 0;
3687}
3688
3689static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3690
3691static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3692 struct snd_ctl_elem_value *ucontrol)
3693{
3694 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3695 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3696 __func__, ucontrol->value.integer.value[0]);
3697 return 0;
3698}
3699
3700static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3701 struct snd_ctl_elem_value *ucontrol)
3702{
3703 switch (ucontrol->value.integer.value[0]) {
3704 case 0:
3705 msm_ec_ref_sampling_rate = 0;
3706 break;
3707 case 1:
3708 msm_ec_ref_sampling_rate = 8000;
3709 break;
3710 case 2:
3711 msm_ec_ref_sampling_rate = 16000;
3712 break;
3713 case 3:
3714 msm_ec_ref_sampling_rate = 32000;
3715 break;
3716 case 4:
3717 msm_ec_ref_sampling_rate = 44100;
3718 break;
3719 case 5:
3720 msm_ec_ref_sampling_rate = 48000;
3721 break;
3722 case 6:
3723 msm_ec_ref_sampling_rate = 96000;
3724 break;
3725 case 7:
3726 msm_ec_ref_sampling_rate = 192000;
3727 break;
3728 case 8:
3729 msm_ec_ref_sampling_rate = 384000;
3730 break;
3731 default:
3732 msm_ec_ref_sampling_rate = 48000;
3733 break;
3734 }
3735 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3736 __func__, msm_ec_ref_sampling_rate);
3737 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3738 return 0;
3739}
3740
3741static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3742 "32000", "44100", "48000", "96000", "192000", "384000"};
3743
3744static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3745 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3746 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3747 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3748};
3749
3750static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3751 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3752 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3753 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3754 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3755 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3756 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3757};
3758
3759static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3760 struct snd_ctl_elem_value *ucontrol)
3761{
3762 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3763 mutex_lock(&routing_lock);
3764 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3765 mutex_unlock(&routing_lock);
3766 return 0;
3767}
3768
3769static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3770 struct snd_ctl_elem_value *ucontrol)
3771{
3772 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303773 struct snd_soc_dapm_widget *widget =
3774 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303775 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3776 struct snd_soc_dapm_update *update = NULL;
3777
3778
3779 mutex_lock(&routing_lock);
3780 switch (ucontrol->value.integer.value[0]) {
3781 case 0:
3782 msm_route_ec_ref_rx = 0;
3783 ec_ref_port_id = AFE_PORT_INVALID;
3784 break;
3785 case 1:
3786 msm_route_ec_ref_rx = 1;
3787 ec_ref_port_id = SLIMBUS_0_RX;
3788 break;
3789 case 2:
3790 msm_route_ec_ref_rx = 2;
3791 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3792 break;
3793 case 3:
3794 msm_route_ec_ref_rx = 3;
3795 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3796 break;
3797 case 4:
3798 msm_route_ec_ref_rx = 4;
3799 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3800 break;
3801 case 5:
3802 msm_route_ec_ref_rx = 5;
3803 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3804 break;
3805 case 6:
3806 msm_route_ec_ref_rx = 6;
3807 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3808 break;
3809 case 7:
3810 msm_route_ec_ref_rx = 7;
3811 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3812 break;
3813 case 9:
3814 msm_route_ec_ref_rx = 9;
3815 ec_ref_port_id = SLIMBUS_5_RX;
3816 break;
3817 case 10:
3818 msm_route_ec_ref_rx = 10;
3819 ec_ref_port_id = SLIMBUS_1_TX;
3820 break;
3821 case 11:
3822 msm_route_ec_ref_rx = 11;
3823 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3824 break;
3825 case 12:
3826 msm_route_ec_ref_rx = 12;
3827 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3828 break;
3829 case 13:
3830 msm_route_ec_ref_rx = 13;
3831 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3832 break;
3833 case 14:
3834 msm_route_ec_ref_rx = 14;
3835 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3836 break;
3837 case 15:
3838 msm_route_ec_ref_rx = 15;
3839 ec_ref_port_id = SLIMBUS_6_RX;
3840 break;
3841 case 16:
3842 msm_route_ec_ref_rx = 16;
3843 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3844 break;
3845 case 17:
3846 msm_route_ec_ref_rx = 17;
3847 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3848 break;
3849 case 18:
3850 msm_route_ec_ref_rx = 18;
3851 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3852 break;
3853 case 19:
3854 msm_route_ec_ref_rx = 19;
3855 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3856 break;
3857 case 20:
3858 msm_route_ec_ref_rx = 20;
3859 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3860 break;
3861 case 21:
3862 msm_route_ec_ref_rx = 21;
3863 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3864 break;
3865 case 22:
3866 msm_route_ec_ref_rx = 22;
3867 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3868 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003869 case 23:
3870 msm_route_ec_ref_rx = 23;
3871 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3872 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303873 case 24:
3874 msm_route_ec_ref_rx = 24;
3875 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3876 break;
3877 case 25:
3878 msm_route_ec_ref_rx = 25;
3879 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3880 break;
3881 case 26:
3882 msm_route_ec_ref_rx = 26;
3883 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3884 break;
3885 case 27:
3886 msm_route_ec_ref_rx = 27;
3887 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3888 break;
3889 case 28:
3890 msm_route_ec_ref_rx = 28;
3891 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3892 break;
Zhou Songb167db12018-07-02 17:14:00 +08003893 case 29:
3894 msm_route_ec_ref_rx = 29;
3895 ec_ref_port_id = SLIMBUS_7_RX;
3896 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303897 case 30:
3898 msm_route_ec_ref_rx = 30;
3899 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3900 break;
3901 case 31:
3902 msm_route_ec_ref_rx = 31;
3903 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3904 break;
3905 case 32:
3906 msm_route_ec_ref_rx = 32;
3907 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3908 break;
3909 case 33:
3910 msm_route_ec_ref_rx = 33;
3911 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3912 break;
3913 case 34:
3914 msm_route_ec_ref_rx = 34;
3915 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3916 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303917 default:
3918 msm_route_ec_ref_rx = 0; /* NONE */
3919 pr_err("%s EC ref rx %ld not valid\n",
3920 __func__, ucontrol->value.integer.value[0]);
3921 ec_ref_port_id = AFE_PORT_INVALID;
3922 break;
3923 }
3924 adm_ec_ref_rx_id(ec_ref_port_id);
3925 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3926 __func__, msm_route_ec_ref_rx);
3927 mutex_unlock(&routing_lock);
3928 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3929 msm_route_ec_ref_rx, e, update);
3930 return 0;
3931}
3932
3933static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3934 "PRI_MI2S_TX", "SEC_MI2S_TX",
3935 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3936 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3937 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3938 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303939 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3940 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003941 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303942 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
3943 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303944};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303945
3946static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3947 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3948};
3949
3950static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3951 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3952 msm_route_ec_ref_rx_enum[0],
3953 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3954
3955static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3956 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3957 msm_route_ec_ref_rx_enum[0],
3958 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3959
3960static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3961 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3962 msm_route_ec_ref_rx_enum[0],
3963 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3964
3965static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3966 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3967 msm_route_ec_ref_rx_enum[0],
3968 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3969
3970static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3971 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3972 msm_route_ec_ref_rx_enum[0],
3973 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3974
3975static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3976 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3977 msm_route_ec_ref_rx_enum[0],
3978 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3979
3980static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3981 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3982 msm_route_ec_ref_rx_enum[0],
3983 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3984
3985static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3986 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3987 msm_route_ec_ref_rx_enum[0],
3988 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3989
Asish Bhattacharya34504582017-08-08 12:55:01 +05303990static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
3991 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
3992 msm_route_ec_ref_rx_enum[0],
3993 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3994
Laxminath Kasam38070be2017-08-17 18:21:59 +05303995static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
3996 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
3997 msm_route_ec_ref_rx_enum[0],
3998 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3999
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304000static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4001 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4002 msm_route_ec_ref_rx_enum[0],
4003 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4004
4005static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4006 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4007 msm_route_ec_ref_rx_enum[0],
4008 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4009
4010static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4011 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4012 msm_route_ec_ref_rx_enum[0],
4013 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4014
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304015static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4016 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4017 msm_route_ec_ref_rx_enum[0],
4018 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4019
4020static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4021 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4022 msm_route_ec_ref_rx_enum[0],
4023 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4024
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304025static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4026 struct snd_ctl_elem_value *ucontrol)
4027{
4028 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4029
4030 mutex_lock(&routing_lock);
4031 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4032 mutex_unlock(&routing_lock);
4033 return 0;
4034}
4035
4036static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4037 struct snd_ctl_elem_value *ucontrol)
4038{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304039 struct snd_soc_dapm_widget *widget =
4040 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304041 int mux = ucontrol->value.enumerated.item[0];
4042 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4043 int ret = 1;
4044 bool state = true;
4045 uint16_t ext_ec_ref_port_id;
4046 struct snd_soc_dapm_update *update = NULL;
4047
4048 if (mux >= e->items) {
4049 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4050 return -EINVAL;
4051 }
4052
4053 mutex_lock(&routing_lock);
4054 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4055
4056 switch (msm_route_ext_ec_ref) {
4057 case EXT_EC_REF_PRI_MI2S_TX:
4058 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4059 break;
4060 case EXT_EC_REF_SEC_MI2S_TX:
4061 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4062 break;
4063 case EXT_EC_REF_TERT_MI2S_TX:
4064 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4065 break;
4066 case EXT_EC_REF_QUAT_MI2S_TX:
4067 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4068 break;
4069 case EXT_EC_REF_QUIN_MI2S_TX:
4070 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4071 break;
4072 case EXT_EC_REF_SLIM_1_TX:
4073 ext_ec_ref_port_id = SLIMBUS_1_TX;
4074 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004075 case EXT_EC_REF_SEC_TDM_TX:
4076 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4077 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304078 case EXT_EC_REF_NONE:
4079 default:
4080 ext_ec_ref_port_id = AFE_PORT_INVALID;
4081 state = false;
4082 break;
4083 }
4084
4085 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4086 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4087
4088 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4089 mutex_unlock(&routing_lock);
4090 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4091 update);
4092 } else {
4093 ret = -EINVAL;
4094 mutex_unlock(&routing_lock);
4095 }
4096 return ret;
4097}
4098
4099static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4100 "SEC_MI2S_TX", "TERT_MI2S_TX",
4101 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004102 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304103
4104static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4105 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4106};
4107
4108static const struct snd_kcontrol_new voc_ext_ec_mux =
4109 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4110 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4111
4112
4113static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004114 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4115 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304116 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004118 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4119 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304120 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004122 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4123 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304124 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004126 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4127 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304128 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004130 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4131 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304132 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004134 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4135 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304136 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004138 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4139 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304140 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004142 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4143 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304144 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004146 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4147 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304148 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004150 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4151 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304152 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004154 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4155 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304156 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004158 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4159 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304160 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004162 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4163 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304164 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004166 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4167 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304168 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004170 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4171 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304172 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004174 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4175 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304176 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004178 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4179 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304180 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004182 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4183 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304184 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004186 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4187 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304188 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004190 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4191 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304192 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004194 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4195 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304196 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4197 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304198};
4199
4200static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004201 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4202 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304203 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004205 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4206 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304207 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004209 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4210 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304211 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004213 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4214 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304215 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004217 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4218 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304219 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004221 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4222 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304223 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004225 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4226 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304227 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004229 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4230 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304231 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004233 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4234 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304235 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004237 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4238 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304239 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004241 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4242 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304243 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004245 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4246 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304247 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004249 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4250 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304251 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004253 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4254 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304255 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004257 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4258 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304259 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004261 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4262 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304263 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004265 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4266 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304267 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004269 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4270 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304271 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004273 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4274 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304275 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004277 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4278 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304279 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004281 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4282 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304283 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4284 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304285};
4286
Ralf Herzc8701f72018-06-20 11:37:35 +02004287static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004288 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004289 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304290 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004292 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004293 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304294 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004296 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004297 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304298 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004300 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004301 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304302 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004304 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004305 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304306 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004308 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004309 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304310 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004312 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004313 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304314 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004316 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004317 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304318 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004320 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004321 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304322 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004324 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004325 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304326 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004328 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004329 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304330 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004332 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004333 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304334 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004336 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004337 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304338 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004340 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004341 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304342 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004344 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004345 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304346 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004348 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004349 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304350 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004352 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004353 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304354 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004356 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004357 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304358 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004360 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004361 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304362 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004364 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004365 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304366 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004368 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004369 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4370 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4371 msm_routing_put_audio_mixer),
4372};
4373
4374static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4375 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4376 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4377 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4378 msm_routing_put_audio_mixer),
4379 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4380 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4381 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4382 msm_routing_put_audio_mixer),
4383 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4384 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4385 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4386 msm_routing_put_audio_mixer),
4387 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4388 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4389 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4390 msm_routing_put_audio_mixer),
4391 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4392 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4393 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4394 msm_routing_put_audio_mixer),
4395 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4396 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4397 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4398 msm_routing_put_audio_mixer),
4399 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4400 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4401 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4402 msm_routing_put_audio_mixer),
4403 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4404 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4405 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4406 msm_routing_put_audio_mixer),
4407 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4408 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4409 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4410 msm_routing_put_audio_mixer),
4411 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4412 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4413 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4414 msm_routing_put_audio_mixer),
4415 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4416 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4417 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4418 msm_routing_put_audio_mixer),
4419 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4420 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4421 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4422 msm_routing_put_audio_mixer),
4423 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4424 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4425 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4426 msm_routing_put_audio_mixer),
4427 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4428 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4429 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4430 msm_routing_put_audio_mixer),
4431 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4432 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4433 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4434 msm_routing_put_audio_mixer),
4435 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4436 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4437 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4438 msm_routing_put_audio_mixer),
4439 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4440 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4441 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4442 msm_routing_put_audio_mixer),
4443 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4444 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4445 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4446 msm_routing_put_audio_mixer),
4447 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4448 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4449 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4450 msm_routing_put_audio_mixer),
4451 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4452 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4453 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4454 msm_routing_put_audio_mixer),
4455 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4456 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304457 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4458 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304459};
4460
4461static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004462 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4463 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304464 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004466 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4467 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304468 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004470 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4471 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304472 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004474 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4475 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304476 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004478 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4479 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304480 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004482 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4483 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304484 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004486 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4487 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304488 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004490 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4491 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304492 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004494 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4495 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304496 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004498 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4499 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304500 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004502 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4503 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304504 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004506 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4507 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304508 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004510 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4511 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304512 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004514 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4515 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304516 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004518 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4519 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304520 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004522 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4523 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304524 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4525 msm_routing_put_audio_mixer),
4526};
4527
4528static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004529 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4530 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304531 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004533 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4534 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304535 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004537 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4538 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304539 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004541 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4542 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304543 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004545 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4546 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304547 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004549 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4550 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304551 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004553 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4554 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304555 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004557 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4558 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304559 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004561 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4562 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304563 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004565 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4566 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304567 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004569 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4570 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304571 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004573 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4574 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304575 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004577 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4578 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304579 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004581 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4582 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304583 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004585 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4586 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304587 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004589 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4590 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304591 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004593 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4594 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304595 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004597 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4598 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304599 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004601 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4602 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304603 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004605 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4606 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304607 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004609 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4610 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304611 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4612 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304613};
4614
4615static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004616 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4617 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304618 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004620 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4621 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304622 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004624 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4625 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304626 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004628 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4629 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304630 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004632 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4633 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304634 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004636 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4637 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304638 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004640 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4641 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304642 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004644 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4645 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304646 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004648 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4649 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304650 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004652 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4653 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304654 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004656 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4657 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304658 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004660 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4661 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304662 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004664 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4665 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304666 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004668 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4669 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304670 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004672 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4673 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304674 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004676 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4677 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304678 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004680 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4681 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304682 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004684 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4685 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304686 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004688 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4689 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304690 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004692 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4693 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304694 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004696 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4697 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304698 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4699 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304700};
4701
4702static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004703 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4704 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304705 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004707 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4708 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304709 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004711 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4712 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304713 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004715 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4716 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304717 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004719 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4720 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304721 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004723 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4724 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304725 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004727 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4728 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304729 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004731 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4732 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304733 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004735 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4736 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304737 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004739 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4740 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304741 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004743 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4744 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304745 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004747 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4748 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304749 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004751 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4752 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304753 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004755 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4756 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304757 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004759 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4760 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304761 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004763 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4764 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304765 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004767 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4768 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304769 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004771 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4772 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304773 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004775 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4776 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304777 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004779 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4780 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304781 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004783 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4784 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304785 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4786 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304787};
4788
4789static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004790 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4791 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304792 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004794 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4795 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304796 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004798 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4799 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304800 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004802 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4803 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304804 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004806 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4807 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304808 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004810 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4811 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304812 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004814 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4815 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304816 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004818 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4819 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304820 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004822 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4823 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304824 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004826 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4827 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304828 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004830 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4831 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304832 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004834 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4835 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304836 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004838 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4839 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304840 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004842 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4843 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304844 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004846 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4847 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304848 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004850 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4851 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304852 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004854 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4855 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304856 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004858 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4859 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304860 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004862 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4863 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304864 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004866 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4867 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304868 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004870 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4871 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304872 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4873 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304874};
4875
4876static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004877 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4878 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304879 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004881 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4882 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304883 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004885 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4886 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304887 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004889 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4890 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304891 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004893 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4894 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304895 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004897 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4898 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304899 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004901 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4902 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304903 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004905 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4906 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304907 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004909 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4910 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304911 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004913 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4914 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304915 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004917 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4918 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304919 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004921 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4922 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304923 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004925 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4926 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304927 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004929 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4930 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304931 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004933 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4934 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304935 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004937 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4938 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304939 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004941 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4942 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304943 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004945 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4946 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304947 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004949 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4950 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304951 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004953 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4954 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304955 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004957 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4958 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304959 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4960 msm_routing_put_audio_mixer),
4961
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962};
4963
4964static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004965 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4966 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304967 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004969 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4970 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304971 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004973 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4974 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304975 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004977 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4978 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304979 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004981 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4982 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304983 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004985 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4986 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304987 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004989 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4990 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304991 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004993 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4994 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304995 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004997 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4998 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304999 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005001 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5002 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305003 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005005 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5006 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305007 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005009 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5010 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305011 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005013 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5014 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305015 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005017 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5018 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305019 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005021 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5022 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305023 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005025 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5026 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305027 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005029 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5030 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305031 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005033 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5034 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305035 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005037 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5038 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305039 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5040 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305041};
5042
5043static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005044 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5045 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305046 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5047 msm_routing_put_audio_mixer),
5048};
5049
5050static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005051 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5052 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305053 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005055 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5056 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305057 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005059 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5060 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305061 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005063 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5064 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305065 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005067 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5068 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305069 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005071 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5072 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305073 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005075 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5076 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305077 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005079 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5080 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305081 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005083 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5084 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305085 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005087 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5088 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305089 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005091 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5092 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305093 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005095 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5096 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305097 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005099 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005103 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5104 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305105 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005107 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5108 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305109 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005111 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5112 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305113 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005115 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5116 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305117 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005119 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5120 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305121 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005123 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5124 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305125 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005127 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5128 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305129 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005131 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5132 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305133 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5134 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305135};
5136
5137static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005138 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5139 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305140 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005142 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5143 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305144 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005146 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5147 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305148 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005150 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5151 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305152 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005154 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5155 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305156 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005158 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5159 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305160 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005162 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5163 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305164 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005166 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5167 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305168 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005170 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5171 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305172 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005174 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5175 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305176 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005178 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5179 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305180 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005182 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5183 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305184 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005186 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5187 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305188 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005190 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5191 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305192 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005194 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5195 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305196 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005198 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5199 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305200 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005202 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5203 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305204 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005206 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5207 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305208 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005210 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5211 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305212 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005214 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5215 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305216 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005218 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5219 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305220 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5221 msm_routing_put_audio_mixer),
5222
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223};
5224
5225static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005226 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5227 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305228 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005230 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5231 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305232 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005234 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5235 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305236 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005238 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5239 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305240 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005242 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5243 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305244 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005246 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5247 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305248 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005250 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5251 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305252 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005254 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5255 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305256 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005258 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5259 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305260 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005262 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5263 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305264 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005266 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5267 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305268 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005270 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5271 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305272 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005274 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5275 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305276 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005278 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5279 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305280 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005282 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5283 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305284 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005286 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5287 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305288 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5289 msm_routing_put_audio_mixer),
5290};
5291
5292static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005293 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5294 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305295 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005297 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5298 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305299 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005301 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5302 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305303 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005305 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5306 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305307 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005309 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5310 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305311 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005313 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5314 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305315 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005317 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5318 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305319 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005321 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5322 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305323 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005325 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5326 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305327 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005329 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5330 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305331 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005333 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5334 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305335 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005337 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5338 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305339 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005341 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5342 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305343 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005345 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5346 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305347 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005349 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5350 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305351 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005353 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5354 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305355 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5356 msm_routing_put_audio_mixer),
5357};
5358
5359static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005360 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5361 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305362 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005364 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5365 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305366 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005368 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5369 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305370 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005372 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5373 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305374 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005376 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5377 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305378 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005380 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5381 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305382 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005384 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5385 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305386 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005388 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5389 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305390 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005392 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5393 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305394 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005396 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5397 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305398 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005400 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5401 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305402 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005404 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5405 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305406 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005408 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5409 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305410 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005412 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5413 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305414 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005416 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5417 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305418 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005420 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5421 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305422 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005424 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5425 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305426 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005428 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5429 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305430 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005432 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5433 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305434 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005436 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5437 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305438 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005440 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5441 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305442 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5443 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305444};
5445
5446static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005447 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5448 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305449 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005451 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5452 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305453 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005455 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5456 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305457 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005459 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5460 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305461 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005463 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5464 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305465 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005467 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5468 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305469 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005471 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5472 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305473 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005475 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5476 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305477 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005479 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5480 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305481 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005483 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5484 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305485 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005487 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5488 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305489 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005491 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5492 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305493 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005495 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5496 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305497 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005499 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5500 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305501 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005503 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5504 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305505 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005507 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5508 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305509 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5510 msm_routing_put_audio_mixer),
5511};
5512
Karthikeyan Mani57550082018-05-03 18:43:58 -07005513static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5514 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5515 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5516 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5517 msm_routing_put_audio_mixer),
5518 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5519 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5520 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5521 msm_routing_put_audio_mixer),
5522 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5523 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5524 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5525 msm_routing_put_audio_mixer),
5526 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5527 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5528 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5529 msm_routing_put_audio_mixer),
5530 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5531 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5532 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5533 msm_routing_put_audio_mixer),
5534 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5535 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5536 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5537 msm_routing_put_audio_mixer),
5538 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5539 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5540 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5541 msm_routing_put_audio_mixer),
5542 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5543 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5544 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5545 msm_routing_put_audio_mixer),
5546 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5547 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5548 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5549 msm_routing_put_audio_mixer),
5550 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5551 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5552 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5553 msm_routing_put_audio_mixer),
5554 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5555 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5556 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5557 msm_routing_put_audio_mixer),
5558 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5559 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5560 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5561 msm_routing_put_audio_mixer),
5562 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5563 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5564 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5565 msm_routing_put_audio_mixer),
5566 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5567 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5568 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5569 msm_routing_put_audio_mixer),
5570 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5571 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5572 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5573 msm_routing_put_audio_mixer),
5574 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5575 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5576 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5577 msm_routing_put_audio_mixer),
5578};
5579
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305580 /* incall music delivery mixer */
5581static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005582 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5583 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305584 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005586 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5587 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305588 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005590 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5591 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305592 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005594 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5595 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305596 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5597 msm_routing_put_audio_mixer),
5598};
5599
5600static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005601 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5602 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305603 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005605 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5606 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305607 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005609 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5610 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305611 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005613 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5614 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305615 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5616 msm_routing_put_audio_mixer),
5617};
5618
5619static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005620 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5621 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305622 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005624 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5625 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305626 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005628 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5629 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305630 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005632 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5633 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305634 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5635 msm_routing_put_audio_mixer),
5636};
5637
5638static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005639 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305641 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005643 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5644 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305645 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005647 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5648 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305649 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005651 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5652 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305653 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005655 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5656 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305657 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005659 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5660 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305661 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005663 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5664 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305665 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005667 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5668 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305669 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005671 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5672 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305673 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005675 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5676 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305677 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005679 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5680 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305681 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005683 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5684 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305685 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005687 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5688 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305689 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005691 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5692 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305693 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005695 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5696 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305697 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005699 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5700 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305701 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5702 msm_routing_put_audio_mixer),
5703};
5704
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305705static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5706 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5707 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5708 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5709 msm_routing_put_audio_mixer),
5710 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5711 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5712 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5713 msm_routing_put_audio_mixer),
5714 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5715 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5716 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5717 msm_routing_put_audio_mixer),
5718 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5720 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
5722 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5723 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5724 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5725 msm_routing_put_audio_mixer),
5726 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5727 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5728 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5729 msm_routing_put_audio_mixer),
5730 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5731 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5732 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5733 msm_routing_put_audio_mixer),
5734 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5735 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5736 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5737 msm_routing_put_audio_mixer),
5738 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5739 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5740 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5741 msm_routing_put_audio_mixer),
5742 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5743 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5744 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5745 msm_routing_put_audio_mixer),
5746 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5747 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5748 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5749 msm_routing_put_audio_mixer),
5750 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5751 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5752 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5753 msm_routing_put_audio_mixer),
5754 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5755 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5756 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5757 msm_routing_put_audio_mixer),
5758 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5759 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5760 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5761 msm_routing_put_audio_mixer),
5762 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5763 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5764 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5765 msm_routing_put_audio_mixer),
5766 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5767 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5768 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5769 msm_routing_put_audio_mixer),
5770};
5771
5772static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5773 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
5777 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5779 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
5781 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5783 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
5785 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5787 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
5789 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5791 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
5793 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5795 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
5797 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5799 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
5801 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5803 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
5805 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5807 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
5809 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5811 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
5813 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5815 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
5817 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5819 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
5821 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5822 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5823 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5824 msm_routing_put_audio_mixer),
5825 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5826 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5827 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5828 msm_routing_put_audio_mixer),
5829 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5830 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5831 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5832 msm_routing_put_audio_mixer),
5833 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5835 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
5837};
5838
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305839static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5840 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5842 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
5844 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5846 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
5848 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5850 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
5852 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5854 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
5856 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5858 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
5860 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
5864 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5866 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
5868 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5870 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
5872 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5874 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
5876 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5878 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
5880 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5882 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
5884 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5886 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
5888 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5890 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
5892 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5894 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
5896 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5897 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5898 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5899 msm_routing_put_audio_mixer),
5900 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5901 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5902 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5903 msm_routing_put_audio_mixer),
5904};
5905
5906static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
5907 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5909 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
5911 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5913 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
5915 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5917 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
5919 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5920 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5921 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
5923 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5925 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
5927 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5929 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
5931 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5933 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
5935 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5937 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
5939 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5941 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
5943 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5945 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
5947 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5949 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
5951 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5953 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
5955 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5957 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
5959 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5961 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
5963 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5964 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5965 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
5967 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5969 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
5971};
5972
5973static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
5974 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5976 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
5978 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5980 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
5982 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5984 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
5986 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5988 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
5990 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5992 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
5994 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5996 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
5998 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6000 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
6002 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6004 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
6006 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6008 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
6010 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6012 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
6014 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6016 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
6018 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6019 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6020 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6021 msm_routing_put_audio_mixer),
6022 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6023 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6024 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6025 msm_routing_put_audio_mixer),
6026 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6027 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6028 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6029 msm_routing_put_audio_mixer),
6030 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6031 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6032 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6033 msm_routing_put_audio_mixer),
6034 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6036 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
6038};
6039
6040static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6041 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6042 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6043 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6044 msm_routing_put_audio_mixer),
6045 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6046 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6047 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6048 msm_routing_put_audio_mixer),
6049 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6050 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6051 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6052 msm_routing_put_audio_mixer),
6053 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6054 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6055 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6056 msm_routing_put_audio_mixer),
6057 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6058 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6059 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6060 msm_routing_put_audio_mixer),
6061 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6062 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6063 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6064 msm_routing_put_audio_mixer),
6065 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6066 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6067 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6068 msm_routing_put_audio_mixer),
6069 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6071 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
6073 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6075 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
6077 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6079 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
6081 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6083 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
6085 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6087 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
6089 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6091 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
6093 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6095 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
6097 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6099 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
6101 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6103 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
6105};
6106
6107static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6108 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6110 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
6112 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6114 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
6116 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6118 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
6120 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6121 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6122 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6123 msm_routing_put_audio_mixer),
6124 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6125 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6126 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6127 msm_routing_put_audio_mixer),
6128 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6129 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6131 msm_routing_put_audio_mixer),
6132 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6134 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
6136 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6138 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
6140 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6142 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
6144 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6146 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
6148 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6150 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
6152 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6154 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
6156 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6158 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
6160 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6162 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
6164 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6166 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
6168 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
6172};
6173
6174static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6175 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6176 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6177 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6178 msm_routing_put_audio_mixer),
6179 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6181 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
6183 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6185 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
6187 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6189 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
6191 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6192 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6193 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6194 msm_routing_put_audio_mixer),
6195 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6197 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
6199 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6201 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
6203 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6204 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6205 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6206 msm_routing_put_audio_mixer),
6207 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6209 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
6211 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6213 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
6215 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6217 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
6219 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6221 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
6223 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6225 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
6227 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6229 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
6231 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6233 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
6235 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6237 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
6239};
6240
6241static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6242 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6243 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6244 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6245 msm_routing_put_audio_mixer),
6246 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6247 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6248 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6249 msm_routing_put_audio_mixer),
6250 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6252 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
6254 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6255 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6256 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6257 msm_routing_put_audio_mixer),
6258 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6259 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6260 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6261 msm_routing_put_audio_mixer),
6262 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6263 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6264 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6265 msm_routing_put_audio_mixer),
6266 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6267 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6268 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6269 msm_routing_put_audio_mixer),
6270 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6271 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6272 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6273 msm_routing_put_audio_mixer),
6274 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6275 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6276 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6277 msm_routing_put_audio_mixer),
6278 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6279 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6280 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6281 msm_routing_put_audio_mixer),
6282 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6284 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
6286 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6287 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6288 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6289 msm_routing_put_audio_mixer),
6290 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6291 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6292 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6293 msm_routing_put_audio_mixer),
6294 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6296 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
6298 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6300 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
6302 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6303 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6304 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6305 msm_routing_put_audio_mixer),
6306};
6307
6308static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6309 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6311 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
6313 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6315 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
6317 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6319 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
6321 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6323 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
6325 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6327 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
6329 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6331 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
6333 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6335 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
6337 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6338 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6339 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6340 msm_routing_put_audio_mixer),
6341 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6342 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6343 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6344 msm_routing_put_audio_mixer),
6345 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6346 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6347 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6348 msm_routing_put_audio_mixer),
6349 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6350 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6351 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6352 msm_routing_put_audio_mixer),
6353 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6355 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6356 msm_routing_put_audio_mixer),
6357 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6358 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6359 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6360 msm_routing_put_audio_mixer),
6361 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6362 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6363 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6364 msm_routing_put_audio_mixer),
6365 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6367 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6368 msm_routing_put_audio_mixer),
6369 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6371 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
6373};
6374
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306375static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006376 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306378 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006380 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006384 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306386 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006388 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306390 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006392 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306394 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006396 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006400 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6401 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306402 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006404 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6405 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306406 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006408 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6409 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306410 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006412 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6413 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306414 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006416 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6417 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306418 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006420 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6421 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306422 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006424 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6425 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306426 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006428 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6429 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306430 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006432 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6433 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306434 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006436 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6437 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306438 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6439 msm_routing_put_audio_mixer),
6440};
6441
6442static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006443 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6444 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306445 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006447 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306449 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006451 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306453 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006455 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306457 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006459 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306461 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006463 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306465 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006467 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306469 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006471 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6472 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306473 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006475 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6476 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306477 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006479 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306481 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006483 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306485 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006487 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6488 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306489 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006491 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6492 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306493 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006495 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6496 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306497 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006499 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6500 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306501 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006503 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6504 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306505 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6506 msm_routing_put_audio_mixer),
6507};
6508
6509static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006510 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306512 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006514 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306516 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006518 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306520 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006522 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306524 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006526 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306528 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006530 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306532 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006534 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306536 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006538 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6539 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306540 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006542 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306544 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006546 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306548 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006550 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306552 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006554 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306556 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006558 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6559 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306560 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006562 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6563 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306564 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006566 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6567 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306568 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006570 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6571 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306572 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006574 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6575 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306576 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006578 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6579 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306580 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006582 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6583 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306584 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006586 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6587 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306588 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006590 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6591 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306592 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6593 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306594};
6595
6596static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006597 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306599 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006601 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306603 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006605 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6606 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306607 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006609 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6610 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306611 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006613 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6614 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306615 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006617 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6618 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306619 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006621 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6622 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306623 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006625 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6626 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306627 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006629 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6630 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306631 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006633 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6634 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306635 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006637 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6638 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306639 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006641 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6642 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306643 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006645 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6646 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306647 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006649 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6650 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306651 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006653 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6654 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306655 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006657 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6658 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306659 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6660 msm_routing_put_audio_mixer),
6661};
6662
6663static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006664 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306666 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006668 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306670 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006672 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6673 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306674 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006676 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306678 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006680 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306682 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006684 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306686 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006688 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6689 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306690 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006692 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6693 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306694 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006696 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306698 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006700 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306702 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006704 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6705 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306706 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006708 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6709 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306710 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006712 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6713 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306714 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006716 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6717 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306718 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006720 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6721 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306722 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006724 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6725 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306726 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006728 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6729 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306730 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006732 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6733 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306734 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006736 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6737 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306738 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006740 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6741 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306742 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006744 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6745 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306746 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6747 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748};
6749
6750static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006751 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6752 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306753 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006755 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6756 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306757 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006759 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6760 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306761 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006763 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6764 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306765 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006767 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6768 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306769 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006771 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6772 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306773 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006775 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6776 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306777 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006779 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6780 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306781 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006783 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6784 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306785 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006787 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6788 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306789 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006791 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6792 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306793 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006795 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6796 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306797 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006799 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6800 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306801 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006803 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6804 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306805 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006807 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6808 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306809 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006811 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6812 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306813 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006815 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6816 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306817 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006819 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6820 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306821 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006823 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6824 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306825 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006827 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6828 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306829 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006831 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6832 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306833 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6834 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835};
6836
6837static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006838 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6839 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306840 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006842 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6843 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306844 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006846 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6847 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306848 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006850 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6851 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306852 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006854 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6855 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306856 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006858 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6859 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306860 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006862 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6863 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306864 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006866 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6867 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306868 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006870 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6871 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306872 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006874 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6875 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306876 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006878 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6879 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306880 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006882 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6883 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306884 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006886 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6887 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306888 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006890 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6891 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306892 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006894 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6895 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306896 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006898 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6899 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306900 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006902 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6903 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306904 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006906 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6907 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306908 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006910 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6911 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6913 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07006914 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
6915 MSM_BACKEND_DAI_AUXPCM_RX,
6916 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
6917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006918 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6919 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306920 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006922 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6923 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306924 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6925 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926};
6927
6928static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006929 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6930 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306931 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006933 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6934 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306935 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006937 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6938 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306939 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006941 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6942 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306943 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006945 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6946 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306947 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006949 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6950 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306951 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006953 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6954 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306955 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006957 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6958 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306959 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006961 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6962 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306963 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006965 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6966 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306967 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006969 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6970 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306971 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006973 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6974 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306975 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006977 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6978 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306979 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006981 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6982 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306983 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006985 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6986 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306987 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006989 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6990 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306991 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006993 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6994 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306995 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006997 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6998 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306999 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007001 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7002 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307003 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7004 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007005 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7006 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7007 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007009 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7010 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307011 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307015 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7016 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017};
7018
7019static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007020 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7021 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307022 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007024 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7025 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307026 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007028 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7029 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307030 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007032 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7033 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307034 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007036 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7037 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307038 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007040 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7041 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307042 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007044 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7045 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307046 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007048 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7049 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307050 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007052 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7053 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307054 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007056 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7057 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307058 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007060 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7061 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307062 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007064 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7065 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307066 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007068 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7069 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307070 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007072 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7073 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307074 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007076 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7077 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307078 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
7084};
7085
7086static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007087 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7088 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307089 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007091 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7092 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307093 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007095 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7096 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307097 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007099 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7100 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307101 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007103 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7104 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307105 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007107 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7108 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307109 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007111 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7112 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307113 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007115 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7116 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307117 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007119 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7120 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307121 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007123 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7124 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307125 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007127 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7128 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307129 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007131 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7132 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307133 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007135 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7136 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307137 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007139 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7140 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307141 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007143 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7144 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307145 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007147 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307149 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
7151};
7152
Rohit Kumara5077932017-09-10 22:05:05 +05307153static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007154 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7155 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307156 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007158 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7159 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307160 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007162 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7163 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307164 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007166 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7167 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307168 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007170 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7171 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307172 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007174 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7175 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307176 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007178 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7179 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307180 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007182 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7183 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307184 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007186 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7187 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307188 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007190 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7191 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307192 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007194 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7195 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307196 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007198 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7199 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307200 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007202 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7203 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307204 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007206 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7207 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307208 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007210 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7211 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307212 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007214 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7215 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7217 msm_routing_put_audio_mixer),
7218};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307219static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007220 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7221 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307222 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007224 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7225 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307226 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007228 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7229 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307230 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007232 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7233 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307234 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007236 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7237 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307238 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007240 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7241 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307242 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007244 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7245 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307246 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007248 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7249 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307250 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007252 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7253 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307254 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007256 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7257 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307258 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007260 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7261 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307262 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007264 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7265 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307266 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007268 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7269 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307270 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007272 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7273 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307274 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007276 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7277 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307278 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007280 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7281 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307282 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7283 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007284 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7285 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7286 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7287 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288};
7289
7290static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007291 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7292 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307293 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007295 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7296 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307297 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007299 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7300 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307301 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007303 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7304 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307305 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007307 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7308 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307309 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007311 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7312 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307313 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007315 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7316 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307317 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007319 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7320 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307321 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007323 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7324 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307325 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007327 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7328 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307329 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007331 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7332 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307333 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007335 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307337 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007339 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7340 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307341 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007343 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7344 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307345 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007347 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7348 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307349 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007351 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7352 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307353 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7354 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007355 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7356 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7357 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7358 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359};
7360
7361static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007362 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7363 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307364 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007366 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7367 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307368 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007370 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7371 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307372 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007374 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7375 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307376 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007378 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7379 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307380 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007382 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7383 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307384 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007386 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7387 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307388 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007390 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7391 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307392 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007394 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7395 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307396 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007398 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7399 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307400 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007402 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7403 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307404 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007406 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307408 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007410 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007414 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007418 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307420 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007422 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7423 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307424 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7425 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007426 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7428 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430};
7431
7432static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007449 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307451 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007453 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7454 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307455 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007457 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7458 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307459 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007461 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7462 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307463 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007465 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7466 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307467 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007469 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7470 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307471 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007477 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307479 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007481 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307483 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007485 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7486 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307487 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007489 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7490 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307491 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007493 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7494 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307495 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7496 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007497 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7498 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7499 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7500 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307501};
7502
7503static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007508 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307510 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007512 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307514 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007516 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307518 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007532 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307534 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007536 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307538 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007540 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307542 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007544 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307546 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007548 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307550 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007552 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307554 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007556 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7557 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307558 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007560 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7561 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307562 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007564 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7565 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307566 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7567 msm_routing_put_audio_mixer),
7568};
7569
7570static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007571 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307573 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007575 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307577 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007579 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307581 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007583 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307585 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007587 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307589 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007591 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307593 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007595 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307597 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007599 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307601 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007603 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307605 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007607 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307609 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007611 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307613 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007615 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7616 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307617 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007619 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7620 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307621 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007623 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7624 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307625 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007627 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7628 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307629 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007631 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7632 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307633 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7634 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007635 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7637 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639};
7640
7641static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007642 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307644 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007646 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7647 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307648 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007650 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307652 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007654 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307656 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007658 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307660 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007662 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307664 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007666 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7667 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307668 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007670 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7671 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307672 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007674 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7675 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307676 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007678 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7679 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307680 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007682 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7683 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307684 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007686 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7687 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307688 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007690 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7691 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307692 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007694 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7695 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307696 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007698 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7699 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307700 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007702 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7703 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307704 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7705 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007706 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7707 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7708 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7709 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307710};
7711
7712static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007713 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307715 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007717 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307719 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007721 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307723 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007725 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307727 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007729 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7730 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307731 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007733 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7734 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307735 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007737 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7738 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307739 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007741 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7742 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307743 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007745 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7746 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307747 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007749 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7750 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307751 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007753 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7754 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307755 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007757 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7758 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307759 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007761 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7762 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307763 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007765 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7766 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307767 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007769 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7770 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307771 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007773 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7774 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307775 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7776 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007777 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7778 MSM_BACKEND_DAI_SEC_TDM_RX_2,
7779 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7780 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307781};
7782
7783static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007784 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7785 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307786 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007788 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7789 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307790 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007792 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7793 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307794 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007796 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7797 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307798 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007800 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7801 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307802 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007804 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7805 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307806 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007808 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7809 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307810 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007812 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7813 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307814 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007816 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7817 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307818 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007820 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7821 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307822 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007824 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7825 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307826 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007828 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7829 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307830 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007832 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7833 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307834 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007836 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7837 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307838 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007840 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7841 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307842 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007844 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7845 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307846 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7847 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007848 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7849 MSM_BACKEND_DAI_SEC_TDM_RX_3,
7850 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7851 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852};
7853
7854static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007855 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7856 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307857 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007859 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7860 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307861 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007863 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307865 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007867 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7868 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307869 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007871 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7872 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307873 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007875 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7876 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307877 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007879 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7880 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307881 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007883 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7884 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307885 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007887 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7888 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307889 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007891 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7892 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307893 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007895 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7896 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307897 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007899 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7900 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307901 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007903 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7904 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307905 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007907 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7908 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307909 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007911 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7912 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307913 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007915 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7916 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307917 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7918 msm_routing_put_audio_mixer),
7919};
7920
7921static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007922 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7923 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307924 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007926 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7927 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307928 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007930 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7931 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307932 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007934 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7935 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307936 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007938 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7939 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307940 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007942 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7943 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307944 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007946 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7947 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307948 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007950 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7951 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307952 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007954 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7955 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307956 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007958 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7959 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307960 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007962 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7963 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307964 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007966 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7967 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307968 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007970 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7971 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307972 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007974 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7975 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307976 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007978 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7979 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307980 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007982 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7983 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307984 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7985 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007986 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7987 MSM_BACKEND_DAI_TERT_TDM_RX_0,
7988 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7989 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990};
7991
7992static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007993 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7994 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307995 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007997 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7998 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307999 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008001 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8002 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308003 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008005 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8006 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308007 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008009 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8010 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308011 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008013 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8014 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308015 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008017 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8018 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308019 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008021 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8022 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308023 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008025 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8026 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308027 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008029 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8030 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308031 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008033 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8034 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308035 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008037 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8038 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308039 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008041 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8042 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308043 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008045 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8046 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308047 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008049 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8050 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308051 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008053 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8054 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308055 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8056 msm_routing_put_audio_mixer),
8057};
8058
8059static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008060 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8061 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308062 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008064 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8065 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308066 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008068 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8069 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308070 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008072 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8073 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308074 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008076 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8077 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308078 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008080 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8081 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308082 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008084 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8085 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308086 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008088 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8089 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308090 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008092 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8093 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308094 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008096 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8097 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308098 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008100 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8101 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308102 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008104 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8105 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308106 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008108 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8109 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308110 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008112 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8113 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308114 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008116 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8117 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308118 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008120 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8121 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308122 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8123 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008124 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8125 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8126 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8127 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308128};
8129
8130static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008131 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308133 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008135 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308137 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008139 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308141 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008143 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308145 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008147 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308149 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008151 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8152 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308153 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008155 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8156 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308157 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008159 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8160 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308161 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008163 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308165 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008167 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308169 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008171 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308173 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008175 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8176 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308177 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008179 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8180 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308181 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008183 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8184 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308185 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008187 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8188 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308189 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008191 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8192 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308193 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8194 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008195 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8196 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8197 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8198 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308199};
8200
8201static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008202 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8203 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308204 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008206 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8207 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308208 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008210 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8211 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308212 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008214 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8215 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308216 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008218 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8219 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308220 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008222 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8223 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308224 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008226 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8227 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308228 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008230 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8231 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308232 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008234 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308236 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008238 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308240 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008242 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308244 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008246 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8247 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308248 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008250 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8251 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308252 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008254 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8255 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308256 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008258 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8259 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308260 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008262 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8263 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308264 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8265 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008266 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8267 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8268 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8269 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270};
8271
8272static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008273 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8274 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308275 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008277 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8278 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308279 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008281 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8282 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308283 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008285 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8286 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308287 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008289 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8290 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308291 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008293 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8294 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308295 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008297 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8298 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308299 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008301 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8302 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308303 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008305 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8306 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308307 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008309 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8310 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308311 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008313 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8314 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308315 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008317 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8318 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308319 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008321 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8322 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308323 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008325 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8326 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308327 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008329 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8330 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308331 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008333 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8334 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308335 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8336 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008337 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8338 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8339 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8340 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308341};
8342
8343static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008344 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
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("MultiMedia2", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308350 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008352 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308354 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008356 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308358 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008360 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8361 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308362 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008364 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8365 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308366 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008368 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8369 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308370 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008372 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8373 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308374 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008376 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8377 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308378 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008380 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8381 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308382 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008384 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8385 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308386 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008388 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8389 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308390 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008392 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8393 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308394 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008396 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8397 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308398 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008400 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8401 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308402 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008404 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8405 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308406 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008408 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8409 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308410 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8411 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008412 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8413 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8414 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8415 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416};
8417
8418static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008419 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8420 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308421 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008423 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8424 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308425 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008427 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8428 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308429 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008431 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8432 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308433 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008435 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8436 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308437 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008439 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8440 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308441 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008443 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8444 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308445 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008447 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8448 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308449 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008451 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8452 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308453 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008455 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8456 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308457 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008459 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8460 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308461 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008463 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8464 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308465 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008467 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8468 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308469 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008471 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8472 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308473 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008475 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8476 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308477 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008479 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8480 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308481 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8482 msm_routing_put_audio_mixer),
8483};
8484
8485static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008486 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8487 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308488 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008490 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8491 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308492 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008494 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8495 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308496 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008498 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8499 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308500 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008502 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8503 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308504 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008506 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8507 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308508 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008510 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8511 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308512 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008514 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8515 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308516 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008518 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8519 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308520 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008522 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8523 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308524 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008526 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8527 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308528 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008530 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8531 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308532 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008534 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8535 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308536 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008538 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8539 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308540 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008542 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8543 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308544 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008546 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8547 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308548 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008550 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8551 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308552 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8553 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008554 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8555 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8556 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8557 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558};
8559
8560static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008561 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8562 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308563 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008565 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8566 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308567 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008569 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8570 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308571 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008573 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8574 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308575 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008577 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8578 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308579 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008581 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8582 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308583 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008585 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8586 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308587 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008589 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8590 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308591 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008593 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8594 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308595 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008597 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8598 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308599 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008601 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8602 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308603 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008605 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8606 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308607 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008609 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8610 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308611 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008613 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8614 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308615 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008617 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8618 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308619 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008621 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8622 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308623 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008625 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8626 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308627 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8628 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008629 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8630 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8631 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8632 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633};
8634
8635static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008636 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8637 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308638 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008640 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8641 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308642 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008644 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8645 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308646 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008648 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8649 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308650 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008652 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8653 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308654 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008656 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8657 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308658 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008660 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8661 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308662 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008664 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8665 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308666 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008668 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8669 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308670 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008672 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8673 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308674 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008676 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8677 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308678 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008680 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8681 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308682 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008684 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8685 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308686 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008688 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8689 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308690 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008692 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8693 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308694 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008696 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8697 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308698 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008700 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8701 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308702 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8703 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008704 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8705 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8706 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8707 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308708};
8709
Rohit Kumara5077932017-09-10 22:05:05 +05308710static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008711 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8712 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308713 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008715 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8716 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308717 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008719 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8720 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308721 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008723 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8724 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308725 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008727 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8728 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308729 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008731 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8732 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308733 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008735 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8736 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308737 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008739 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8740 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308741 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008743 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8744 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308745 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008747 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8748 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308749 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008751 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8752 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308753 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008755 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8756 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308757 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008759 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8760 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308761 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008763 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8764 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308765 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008767 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8768 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308769 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008771 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8772 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308773 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008775 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8776 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308777 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8778 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008779 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8780 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
8781 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8782 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308783};
8784
8785static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008786 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8787 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308788 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008790 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8791 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308792 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008794 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8795 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308796 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008798 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8799 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308800 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008802 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8803 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308804 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008806 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8807 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308808 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008810 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8811 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308812 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008814 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8815 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308816 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008818 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8819 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308820 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008822 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8823 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308824 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008826 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8827 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308828 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008830 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8831 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308832 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008834 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8835 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308836 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008838 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8839 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308840 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008842 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8843 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308844 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008846 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8847 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308848 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8849 msm_routing_put_audio_mixer),
8850};
8851
8852static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008853 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8854 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308855 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008857 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8858 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308859 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008861 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8862 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308863 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008865 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8866 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +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("MultiMedia5", SND_SOC_NOPM,
8870 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308871 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008873 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8874 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308875 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008877 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8878 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308879 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008881 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8882 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308883 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008885 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8886 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308887 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008889 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8890 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308891 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008893 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8894 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308895 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008897 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8898 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308899 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008901 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8902 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308903 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008905 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8906 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308907 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008909 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8910 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308911 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008913 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8914 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308915 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008917 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8918 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308919 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8920 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008921 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8922 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
8923 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8924 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308925};
8926
8927static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008928 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8929 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308930 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008932 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8933 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308934 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008936 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8937 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308938 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008940 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8941 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308942 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008944 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8945 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308946 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008948 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8949 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308950 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008952 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8953 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308954 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008956 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8957 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308958 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008960 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8961 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308962 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008964 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8965 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308966 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008968 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8969 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308970 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008972 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8973 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308974 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008976 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8977 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308978 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008980 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8981 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308982 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008984 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8985 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308986 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008988 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8989 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308990 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008992 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8993 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308994 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8995 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008996 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8997 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
8998 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8999 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309000};
9001
9002static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009003 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9004 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309005 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009007 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9008 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309009 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009011 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9012 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309013 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009015 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9016 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309017 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009019 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9020 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309021 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009023 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9024 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309025 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009027 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9028 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309029 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009031 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9032 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309033 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009035 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9036 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309037 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009039 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9040 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309041 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009043 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9044 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309045 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009047 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9048 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309049 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009051 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9052 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309053 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009055 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9056 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309057 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009059 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9060 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309061 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009063 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9064 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309065 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009067 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9068 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309069 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9070 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009071 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9072 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9073 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9074 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309075};
9076
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309077static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009078 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9079 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309080 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009082 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9083 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309084 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009086 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9087 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309088 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009090 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9091 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309092 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009094 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9095 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309096 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009098 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9099 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309100 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009102 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9103 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309104 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009106 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9107 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309108 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009110 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9111 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309112 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009114 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9115 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309116 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009118 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9119 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309120 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009122 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9123 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309124 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009126 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9127 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309128 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009130 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9131 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309132 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009134 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9135 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309136 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009138 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9139 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309140 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009142 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9143 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309144 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009146 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9147 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309148 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009150 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9151 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309152 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009154 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9155 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309156 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009158 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9159 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309160 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009162 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9163 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309164 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009166 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9167 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309168 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009170 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9171 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309172 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009174 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9175 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309176 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009178 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9179 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309180 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009182 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9183 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309184 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009186 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9187 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309188 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009190 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9191 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309192 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009194 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9195 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309196 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009198 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9199 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309200 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009202 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9203 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309204 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009206 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9207 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309208 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009210 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9211 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309212 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009214 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9215 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309216 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009218 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9219 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309220 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009222 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9223 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309224 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009226 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9227 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309228 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009230 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9231 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309232 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009234 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9235 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309236 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009238 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9239 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309240 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009242 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9243 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309244 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009246 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9247 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309248 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009250 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9251 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309252 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009254 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9255 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309256 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9257 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309258 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9259 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9260 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9261 msm_routing_put_audio_mixer),
9262 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9263 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9264 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9265 msm_routing_put_audio_mixer),
9266 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9267 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9268 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9269 msm_routing_put_audio_mixer),
9270 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9271 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9272 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9273 msm_routing_put_audio_mixer),
9274 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9275 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9276 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9277 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309278 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9279 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9280 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9281 msm_routing_put_audio_mixer),
9282 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9283 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9284 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9285 msm_routing_put_audio_mixer),
9286 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9287 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9288 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9289 msm_routing_put_audio_mixer),
9290 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9291 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9292 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9293 msm_routing_put_audio_mixer),
9294 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9296 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
9298 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9300 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009302 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9304 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
9306 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9308 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309310};
9311
9312static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009313 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9314 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309315 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009317 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9318 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309319 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009321 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9322 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309323 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009325 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9326 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309327 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009329 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9330 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309331 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009333 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9334 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309335 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009337 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9338 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309339 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009341 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9342 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309343 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009345 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9346 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309347 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009349 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9350 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309351 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009353 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9354 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309355 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009357 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9358 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309359 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009361 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9362 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309363 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009365 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9366 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309367 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009397 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309399 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309403 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009405 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009413 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309415 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009421 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309423 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009425 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309427 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009429 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309431 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009433 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309435 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009437 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309439 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009441 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309443 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009445 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309447 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309449 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9451 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9452 msm_routing_put_audio_mixer),
9453 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9454 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9455 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9456 msm_routing_put_audio_mixer),
9457 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9459 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9460 msm_routing_put_audio_mixer),
9461 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9463 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9464 msm_routing_put_audio_mixer),
9465 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9466 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9467 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9468 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309469 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9470 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9471 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9472 msm_routing_put_audio_mixer),
9473 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9474 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9475 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9476 msm_routing_put_audio_mixer),
9477 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9478 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9479 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9480 msm_routing_put_audio_mixer),
9481 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9482 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9483 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9484 msm_routing_put_audio_mixer),
9485 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9486 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9487 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9488 msm_routing_put_audio_mixer),
9489 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9490 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9491 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9492 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009493 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9494 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9495 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9496 msm_routing_put_audio_mixer),
9497 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9498 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9499 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9500 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309501};
9502
9503static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009504 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309506 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009508 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309510 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009512 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309514 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009516 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9517 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309518 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009520 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9521 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309522 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009524 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9525 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309526 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009528 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9529 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309530 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009532 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9533 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309534 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009536 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9537 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309538 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009540 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9541 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309542 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009544 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9545 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309546 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009548 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9549 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309550 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009552 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9553 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309554 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009556 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9557 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309558 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009560 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9561 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309562 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009564 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9565 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309566 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009568 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9569 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309570 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009572 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9573 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309574 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009576 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9577 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309578 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009580 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9581 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309582 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009584 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9585 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309586 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009588 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9589 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309590 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009592 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9593 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309594 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009596 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9597 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309598 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009600 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9601 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309602 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009604 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9605 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309606 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009608 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9609 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309610 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009612 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9613 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309614 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009616 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9617 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309618 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009620 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9621 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309622 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009624 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9625 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309626 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009628 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9629 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309630 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009632 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9633 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309634 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009636 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9637 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309638 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9639 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309640 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9641 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9642 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9643 msm_routing_put_audio_mixer),
9644 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9645 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9646 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9647 msm_routing_put_audio_mixer),
9648 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9649 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9650 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9651 msm_routing_put_audio_mixer),
9652 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9653 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9654 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9655 msm_routing_put_audio_mixer),
9656 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9657 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9658 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9659 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309660 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9661 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9662 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9663 msm_routing_put_audio_mixer),
9664 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9665 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9666 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9667 msm_routing_put_audio_mixer),
9668 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9669 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9670 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9671 msm_routing_put_audio_mixer),
9672 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9673 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9674 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9675 msm_routing_put_audio_mixer),
9676 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9677 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9678 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9679 msm_routing_put_audio_mixer),
9680 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9681 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9682 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9683 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009684 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9685 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9686 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9687 msm_routing_put_audio_mixer),
9688 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9689 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9690 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9691 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309692};
9693
9694static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009695 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9696 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309697 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009699 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9700 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309701 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009703 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9704 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309705 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009707 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9708 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309709 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009711 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9712 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309713 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009715 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9716 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309717 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009719 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9720 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309721 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009723 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9724 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309725 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_TDM_TX_0", SND_SOC_NOPM,
9728 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309729 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009731 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9732 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309733 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009735 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9736 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309737 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009739 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9740 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309741 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009743 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9744 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309745 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009747 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9748 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309749 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009751 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9752 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309753 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009755 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9756 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309757 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_1", SND_SOC_NOPM,
9760 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309761 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_2", SND_SOC_NOPM,
9764 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309765 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_3", SND_SOC_NOPM,
9768 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309769 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009771 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9772 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309773 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_1", SND_SOC_NOPM,
9776 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309777 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_2", SND_SOC_NOPM,
9780 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309781 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_3", SND_SOC_NOPM,
9784 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309785 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009787 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9788 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309789 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009791 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9792 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309793 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009795 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9796 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309797 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009799 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9800 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309801 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_MI2S_TX", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309805 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_MI2S_TX", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309809 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009811 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309813 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009815 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9816 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309817 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009819 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309821 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009823 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309825 MSM_FRONTEND_DAI_MULTIMEDIA4, 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_MULTIMEDIA4, 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_MULTIMEDIA4, 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_MULTIMEDIA4, 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_MULTIMEDIA4, 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_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309847 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9849 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
9851 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9853 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
9855 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9857 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9858 msm_routing_put_audio_mixer),
9859 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9861 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9862 msm_routing_put_audio_mixer),
9863 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9865 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9866 msm_routing_put_audio_mixer),
9867 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9869 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9870 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009871 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9873 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9874 msm_routing_put_audio_mixer),
9875 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9877 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309879};
9880
9881static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009882 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9883 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309884 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009886 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9887 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309888 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009890 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9891 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309892 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009894 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9895 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309896 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009898 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9899 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309900 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009902 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9903 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309904 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009906 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9907 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309908 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009910 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309912 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009914 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9915 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309916 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009918 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9919 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309920 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009922 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9923 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309924 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009926 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9927 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309928 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009930 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9931 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309932 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009934 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309936 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009938 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309940 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009942 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309944 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009946 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309948 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009950 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309952 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009954 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309956 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009958 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309960 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009962 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309964 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009966 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309968 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009970 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9971 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309972 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009974 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9975 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309976 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009978 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9979 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309980 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009982 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9983 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309984 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009986 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9987 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309988 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009990 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9991 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309992 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009994 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9995 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309996 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009998 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9999 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010000 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010002 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10003 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010004 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010006 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10007 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010008 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010010 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10011 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010012 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010014 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10015 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010016 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010018 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10019 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010020 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010022 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10023 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010024 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010026 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10027 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010028 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010030 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10031 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010032 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010034 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10035 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010036 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10037 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010038 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10039 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10040 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10041 msm_routing_put_audio_mixer),
10042 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10043 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10044 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10045 msm_routing_put_audio_mixer),
10046 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10047 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10048 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10049 msm_routing_put_audio_mixer),
10050 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10051 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10052 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10053 msm_routing_put_audio_mixer),
10054 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10055 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10056 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10057 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010058 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10059 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10060 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10061 msm_routing_put_audio_mixer),
10062 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10063 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10064 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10065 msm_routing_put_audio_mixer),
10066 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10067 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10068 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10069 msm_routing_put_audio_mixer),
10070 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10071 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10072 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10073 msm_routing_put_audio_mixer),
10074 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10075 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10076 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10077 msm_routing_put_audio_mixer),
10078 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10079 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10080 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10081 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010082 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10083 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10084 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10085 msm_routing_put_audio_mixer),
10086 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10087 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10088 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10089 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090};
10091
10092static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010093 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10094 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010095 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010097 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10098 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010099 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010101 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10102 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010103 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010105 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10106 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010107 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010109 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10110 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010111 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010113 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10114 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010115 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010117 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10118 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010119 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010121 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10122 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010123 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010125 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10126 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010127 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010129 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10130 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010131 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010133 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10134 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010135 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010137 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10138 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010139 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010141 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10142 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010143 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010145 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10146 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010147 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010149 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10150 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010151 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010153 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10154 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010155 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010157 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10158 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010159 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010161 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10162 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010163 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010165 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10166 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010167 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010169 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10170 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010171 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010173 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10174 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010175 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010177 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10178 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010179 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010181 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10182 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010183 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010185 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10186 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010187 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010189 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10190 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010191 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010193 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10194 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010195 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010197 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10198 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010199 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010201 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10202 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010203 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010205 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10206 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010207 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010209 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10210 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010211 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010213 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10214 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010215 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010217 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10218 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010219 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010221 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10222 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010223 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010225 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10226 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010227 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10228 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010229 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10230 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10231 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10232 msm_routing_put_audio_mixer),
10233 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10234 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10235 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10236 msm_routing_put_audio_mixer),
10237 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10238 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10239 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10240 msm_routing_put_audio_mixer),
10241 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10242 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10243 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10244 msm_routing_put_audio_mixer),
10245 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10247 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10248 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010249 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10251 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10252 msm_routing_put_audio_mixer),
10253 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10254 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10255 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10256 msm_routing_put_audio_mixer),
10257 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10258 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10259 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10260 msm_routing_put_audio_mixer),
10261 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10262 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10263 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10264 msm_routing_put_audio_mixer),
10265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10267 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10268 msm_routing_put_audio_mixer),
10269 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10270 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10271 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10272 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010273 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10274 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10275 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10276 msm_routing_put_audio_mixer),
10277 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10279 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10280 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010281};
10282
10283static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010284 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10285 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010286 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010288 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10289 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010290 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010292 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10293 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010294 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010296 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10297 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010298 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010300 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10301 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010302 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010304 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10305 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010306 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010308 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10309 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010310 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010312 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10313 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010314 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010316 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10317 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010318 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010320 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10321 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010322 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010324 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10325 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010326 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010328 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10329 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010330 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010332 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10333 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010334 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010336 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10337 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010338 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010340 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10341 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010342 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010344 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10345 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010346 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010348 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10349 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010350 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010352 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10353 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010354 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010356 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10357 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010358 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010360 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10361 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010362 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010364 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10365 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010366 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010368 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10369 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010370 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010372 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10373 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010374 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010376 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10377 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010378 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010380 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10381 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010382 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010384 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10385 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010386 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010388 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10389 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010390 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010392 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010394 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010396 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10397 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010398 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010400 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10401 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010402 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010404 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10405 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010406 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010408 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10409 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010410 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010412 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10413 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010414 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010416 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10417 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010418 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010420 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10421 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010422 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10423 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010424 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10425 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10426 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10427 msm_routing_put_audio_mixer),
10428 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10430 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10431 msm_routing_put_audio_mixer),
10432 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10434 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10435 msm_routing_put_audio_mixer),
10436 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10437 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10438 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10439 msm_routing_put_audio_mixer),
10440 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10441 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10442 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10443 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010444 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10446 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10447 msm_routing_put_audio_mixer),
10448 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10450 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10451 msm_routing_put_audio_mixer),
10452 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10453 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10454 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10455 msm_routing_put_audio_mixer),
10456 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10457 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10458 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10459 msm_routing_put_audio_mixer),
10460 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10461 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10462 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10463 msm_routing_put_audio_mixer),
10464 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10465 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10466 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10467 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010468 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10469 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10470 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10471 msm_routing_put_audio_mixer),
10472 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10473 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10474 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10475 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010476};
10477
Asish Bhattacharya34504582017-08-08 12:55:01 +053010478static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010479 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10480 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010481 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010483 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10484 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010485 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010487 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10488 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010489 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010491 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10492 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010493 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010495 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10496 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010497 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010499 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10500 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010501 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010503 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10504 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010505 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010507 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10508 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010509 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010511 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10512 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010513 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010515 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10516 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010517 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010519 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10520 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010521 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010523 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10524 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010525 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010527 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10528 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010529 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010531 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10532 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010533 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010535 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10536 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010537 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010539 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10540 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010541 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010543 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10544 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010545 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010547 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10548 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010549 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010551 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10552 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010553 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010555 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10556 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010557 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010559 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10560 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010561 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010563 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10564 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010565 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010567 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10568 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010569 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010571 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10572 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010573 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010575 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10576 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010577 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010579 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10580 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010581 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010583 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10584 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010585 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010587 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10588 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010589 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010591 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10592 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010593 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010595 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10596 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010597 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010599 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10600 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010601 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010603 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10604 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010605 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010607 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10608 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010609 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010611 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10612 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010613 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010615 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10616 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010617 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10618 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010619 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10620 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10622 msm_routing_put_audio_mixer),
10623 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10624 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10625 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10626 msm_routing_put_audio_mixer),
10627 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10628 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10629 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10630 msm_routing_put_audio_mixer),
10631 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10633 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10634 msm_routing_put_audio_mixer),
10635 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10636 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10637 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10638 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010639 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10640 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10641 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10642 msm_routing_get_audio_mixer,
10643 msm_routing_put_audio_mixer),
10644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10646 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10647 msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
10649 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10651 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10652 msm_routing_get_audio_mixer,
10653 msm_routing_put_audio_mixer),
10654 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10655 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10656 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10657 msm_routing_get_audio_mixer,
10658 msm_routing_put_audio_mixer),
10659 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10661 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10662 msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
10664 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10666 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10667 msm_routing_get_audio_mixer,
10668 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010669 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10671 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
10673 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10675 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010677};
10678
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010679static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010680 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10681 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010682 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010684 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10685 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010686 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010688 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10689 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010690 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010692 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10693 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010694 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010696 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10697 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010698 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010700 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010702 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010704 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010706 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010708 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010710 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010712 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010714 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010716 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010718 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010720 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010722 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010724 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010726 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010728 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010730 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010732 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010734 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010736 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010738 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010740 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010742 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010744 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010746 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010748 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010750 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010752 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010754 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010756 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010758 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010760 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10762 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10763 msm_routing_put_audio_mixer),
10764 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10766 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10767 msm_routing_put_audio_mixer),
10768 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10769 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10770 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10771 msm_routing_put_audio_mixer),
10772 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10773 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10774 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10775 msm_routing_put_audio_mixer),
10776 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10777 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10778 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10779 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010780 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10781 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10782 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10783 msm_routing_put_audio_mixer),
10784 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10785 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10786 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10787 msm_routing_put_audio_mixer),
10788 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10789 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10790 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10791 msm_routing_put_audio_mixer),
10792 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10793 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10794 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10795 msm_routing_put_audio_mixer),
10796 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10797 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10798 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10799 msm_routing_put_audio_mixer),
10800 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10801 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10802 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10803 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010804 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10805 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10806 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10807 msm_routing_put_audio_mixer),
10808 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10809 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10810 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10811 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010812};
10813
Laxminath Kasam38070be2017-08-17 18:21:59 +053010814static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010815 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010817 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010819 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010821 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010823 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010825 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010827 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010829 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010831 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010833 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010835 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010837 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010839 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10840 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010841 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010843 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10844 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010845 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010847 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10848 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070010849 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010851 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10852 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010853 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010855 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10856 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010857 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010859 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10860 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010861 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010863 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10864 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010865 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010867 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10868 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010869 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010871 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10872 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010873 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010875 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10876 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010877 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010879 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10880 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010881 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010883 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10884 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010885 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010887 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10888 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010889 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010891 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10892 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010893 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010895 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10896 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010897 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010899 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10900 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010901 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010903 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10904 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010905 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010907 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010909 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010911 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10912 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010913 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010915 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010917 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10918 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010919 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10921 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10922 msm_routing_put_audio_mixer),
10923 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10924 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10925 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10926 msm_routing_put_audio_mixer),
10927 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10929 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
10931 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10933 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10934 msm_routing_put_audio_mixer),
10935 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10937 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010939 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10941 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10942 msm_routing_get_audio_mixer,
10943 msm_routing_put_audio_mixer),
10944 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10945 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10946 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10947 msm_routing_get_audio_mixer,
10948 msm_routing_put_audio_mixer),
10949 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10951 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10952 msm_routing_get_audio_mixer,
10953 msm_routing_put_audio_mixer),
10954 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10955 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10956 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10957 msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
10959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10961 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10962 msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
10964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10966 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10967 msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010969 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10971 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
10973 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10975 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053010977};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010978static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010979 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10980 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010981 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010983 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010985 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010987 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010989 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010991 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10992 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010993 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010995 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10996 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010997 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010999 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11000 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011001 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011003 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011005 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011007 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011009 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11010 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011011 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11013 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11014 msm_routing_put_audio_mixer),
11015 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11017 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11018 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011019 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11021 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11022 msm_routing_put_audio_mixer),
11023 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11025 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11026 msm_routing_put_audio_mixer),
11027 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11029 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
11031 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11033 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11034 msm_routing_put_audio_mixer),
11035 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11037 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11038 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011039 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11041 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11042 msm_routing_get_audio_mixer,
11043 msm_routing_put_audio_mixer),
11044 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11045 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11046 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11047 msm_routing_get_audio_mixer,
11048 msm_routing_put_audio_mixer),
11049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11051 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11052 msm_routing_get_audio_mixer,
11053 msm_routing_put_audio_mixer),
11054 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11055 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11056 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11057 msm_routing_get_audio_mixer,
11058 msm_routing_put_audio_mixer),
11059 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11061 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11062 msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
11064 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11065 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11066 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11067 msm_routing_get_audio_mixer,
11068 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011069 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11070 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11071 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11072 msm_routing_put_audio_mixer),
11073 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11074 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11075 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11076 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011077};
11078
11079static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011080 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11081 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011082 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011084 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11085 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011086 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011088 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11089 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011090 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11091 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011092 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11093 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11094 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11095 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011096 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11097 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11098 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011100 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11101 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011102 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011104 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11105 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011106 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011108 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11109 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011110 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011112 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11113 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011114 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011116 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11117 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011118 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011120 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11121 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011122 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11123 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011124 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11125 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11126 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11127 msm_routing_put_audio_mixer),
11128 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11129 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11130 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11131 msm_routing_put_audio_mixer),
11132 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11133 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11134 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11135 msm_routing_put_audio_mixer),
11136 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11138 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11139 msm_routing_put_audio_mixer),
11140 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11141 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11142 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11143 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011144 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11145 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11146 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11147 msm_routing_get_audio_mixer,
11148 msm_routing_put_audio_mixer),
11149 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11150 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11151 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11152 msm_routing_get_audio_mixer,
11153 msm_routing_put_audio_mixer),
11154 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11155 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11156 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11157 msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
11159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11161 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11162 msm_routing_get_audio_mixer,
11163 msm_routing_put_audio_mixer),
11164 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11165 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11166 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11167 msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
11169 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11170 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11171 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11172 msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011174 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11176 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
11178 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11180 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011182};
11183
11184static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011185 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11186 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011187 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011189 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11190 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011191 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011193 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11194 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011195 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011197 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11198 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011199 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011201 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11202 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011203 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011205 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11206 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011207 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011209 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11210 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011211 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011213 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11214 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011215 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11216 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011217 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11218 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11219 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11220 msm_routing_put_audio_mixer),
11221 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11222 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11223 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11224 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011225 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11226 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11227 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11228 msm_routing_put_audio_mixer),
11229 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11230 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11231 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11232 msm_routing_put_audio_mixer),
11233 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11234 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11235 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11236 msm_routing_put_audio_mixer),
11237 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11238 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11239 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11240 msm_routing_put_audio_mixer),
11241 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11242 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11243 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11244 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011245 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11246 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11247 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11248 msm_routing_get_audio_mixer,
11249 msm_routing_put_audio_mixer),
11250 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11252 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11253 msm_routing_get_audio_mixer,
11254 msm_routing_put_audio_mixer),
11255 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11256 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11257 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11258 msm_routing_get_audio_mixer,
11259 msm_routing_put_audio_mixer),
11260 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11261 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11262 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11263 msm_routing_get_audio_mixer,
11264 msm_routing_put_audio_mixer),
11265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11267 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11268 msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
11270 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11271 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11272 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11273 msm_routing_get_audio_mixer,
11274 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011275 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11276 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11277 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11278 msm_routing_put_audio_mixer),
11279 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11280 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11281 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11282 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011283};
11284
11285static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011286 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11287 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011288 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011290 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11291 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011292 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011294 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11295 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011296 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011298 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11299 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011300 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011302 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11303 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011304 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011306 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11307 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011308 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011310 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11311 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011312 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011314 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11315 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011316 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011318 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11319 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011320 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011322 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11323 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011324 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011326 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11327 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011328 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011330 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11331 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011332 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011334 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11335 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011336 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011338 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11339 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011340 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011342 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11343 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011344 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011346 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11347 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011348 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011350 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11351 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011352 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011354 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11355 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011356 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011358 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11359 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011360 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011362 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11363 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011364 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011366 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11367 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011368 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011370 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11371 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011372 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011374 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11375 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011376 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011378 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11379 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011380 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011382 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11383 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011384 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11385 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011386 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11387 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11388 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11389 msm_routing_put_audio_mixer),
11390 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11391 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11392 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11393 msm_routing_put_audio_mixer),
11394 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11395 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11396 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11397 msm_routing_put_audio_mixer),
11398 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11399 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11400 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11401 msm_routing_put_audio_mixer),
11402 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11403 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11404 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11405 msm_routing_put_audio_mixer),
11406 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11407 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11408 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11409 msm_routing_put_audio_mixer),
11410 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11411 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11412 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11413 msm_routing_put_audio_mixer),
11414 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11415 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11416 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11417 msm_routing_put_audio_mixer),
11418 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11419 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11420 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11421 msm_routing_put_audio_mixer),
11422 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11423 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11424 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11425 msm_routing_put_audio_mixer),
11426 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11427 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11428 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11429 msm_routing_put_audio_mixer),
11430 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11431 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11432 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11433 msm_routing_put_audio_mixer),
11434 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11435 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11436 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11437 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011438};
11439
11440static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11441 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11442 MSM_BACKEND_DAI_AUXPCM_TX,
11443 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11444 msm_routing_put_audio_mixer),
11445 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11446 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11447 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11448 msm_routing_put_audio_mixer),
11449 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11450 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11451 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11452 msm_routing_put_audio_mixer),
11453 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11454 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11455 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11456 msm_routing_put_audio_mixer),
11457 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11458 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11459 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11460 msm_routing_put_audio_mixer),
11461 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11462 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11463 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11464 msm_routing_put_audio_mixer),
11465 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11467 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11468 msm_routing_put_audio_mixer),
11469 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11470 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11471 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11472 msm_routing_put_audio_mixer),
11473 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11475 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11476 msm_routing_put_audio_mixer),
11477 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11478 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11479 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11480 msm_routing_put_audio_mixer),
11481 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11482 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11483 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11484 msm_routing_put_audio_mixer),
11485 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11487 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
11489 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11491 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11492 msm_routing_put_audio_mixer),
11493 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11495 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11496 msm_routing_put_audio_mixer),
11497 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11498 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11499 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11500 msm_routing_put_audio_mixer),
11501 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11502 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11503 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11504 msm_routing_put_audio_mixer),
11505 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11506 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11507 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11508 msm_routing_put_audio_mixer),
11509 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11511 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11512 msm_routing_put_audio_mixer),
11513 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11514 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11515 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11516 msm_routing_put_audio_mixer),
11517 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11519 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11520 msm_routing_put_audio_mixer),
11521 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11522 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11523 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11524 msm_routing_put_audio_mixer),
11525 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11527 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011529 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011530 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11531 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011532 msm_routing_put_audio_mixer),
11533 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011534 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11535 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011536 msm_routing_put_audio_mixer),
11537 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011538 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11539 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011540 msm_routing_put_audio_mixer),
11541 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011542 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11543 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011544 msm_routing_put_audio_mixer),
11545 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011546 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11547 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011548 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11551 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011553 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011554 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11555 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011557 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011558 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11559 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011561 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011562 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11563 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011565 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011566 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11567 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011569 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011570 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11571 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011573 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011575 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011576 msm_routing_put_audio_mixer),
11577 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011579 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011580 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011581};
11582
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011583static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011584 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11585 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011586 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011588 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011590 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011592 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11593 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011594 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011596 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11597 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011598 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011600 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011602 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011604 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011606 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011608 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011610 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011612 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11613 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011614 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11615 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011616 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11617 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11618 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11619 msm_routing_put_audio_mixer),
11620 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11622 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011624 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11626 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11627 msm_routing_put_audio_mixer),
11628 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11630 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11631 msm_routing_put_audio_mixer),
11632 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11633 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11634 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11635 msm_routing_put_audio_mixer),
11636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11638 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11639 msm_routing_put_audio_mixer),
11640 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11641 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11642 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11643 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11646 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11647 msm_routing_get_audio_mixer,
11648 msm_routing_put_audio_mixer),
11649 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11650 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11651 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11652 msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
11654 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11656 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11657 msm_routing_get_audio_mixer,
11658 msm_routing_put_audio_mixer),
11659 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11660 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11661 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11662 msm_routing_get_audio_mixer,
11663 msm_routing_put_audio_mixer),
11664 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11665 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11666 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11667 msm_routing_get_audio_mixer,
11668 msm_routing_put_audio_mixer),
11669 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11670 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11671 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11672 msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011674 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11676 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
11678 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11680 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011682};
11683
11684static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011685 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11686 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011687 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011689 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11690 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011691 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011693 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11694 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011695 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011697 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11698 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011699 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011701 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011703 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011705 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11706 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011707 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011709 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11710 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011711 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011713 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11714 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011715 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11716 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011717 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11718 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11719 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11720 msm_routing_put_audio_mixer),
11721 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11722 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11723 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11724 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011725 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11726 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11727 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11728 msm_routing_put_audio_mixer),
11729 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11730 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11731 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11732 msm_routing_put_audio_mixer),
11733 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11735 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11736 msm_routing_put_audio_mixer),
11737 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11739 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11740 msm_routing_put_audio_mixer),
11741 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11743 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11744 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11747 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11748 msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
11750 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11752 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11753 msm_routing_get_audio_mixer,
11754 msm_routing_put_audio_mixer),
11755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11757 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11758 msm_routing_get_audio_mixer,
11759 msm_routing_put_audio_mixer),
11760 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11762 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11763 msm_routing_get_audio_mixer,
11764 msm_routing_put_audio_mixer),
11765 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11767 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11768 msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
11770 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11772 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11773 msm_routing_get_audio_mixer,
11774 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011775 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11776 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11777 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11778 msm_routing_put_audio_mixer),
11779 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11780 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11781 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11782 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011783};
11784
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011785static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011786 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11787 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011788 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11789 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011790 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011792 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11793 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011794 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011796 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11797 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011798 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011800 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11801 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011802 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011804 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11805 msm_routing_put_voice_mixer),
11806};
11807
11808static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011809 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011811 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11812 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011813 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011815 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11816 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011817 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011819 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11820 msm_routing_put_voice_mixer),
11821};
11822
11823static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011824 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11825 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011826 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11827 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011828 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11829 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011830 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11831 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011832 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11833 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011834 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11835 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011836 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11837 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011838 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11839 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011840 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11841 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011842 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11843 msm_routing_put_voice_mixer),
11844};
11845
11846static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011847 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11848 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011849 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11850 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011851 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11852 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011853 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11854 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011855 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11856 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011857 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11858 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011859 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11860 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011861 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11862 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011863 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011865 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11866 msm_routing_put_voice_mixer),
11867};
11868
11869static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011870 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11871MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011872 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11873 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011874 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11875MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011876 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11877 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011878 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11879MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011880 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11881 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011882 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11883MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011884 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11885 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011886 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11887MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011888 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11889 msm_routing_put_voice_mixer),
11890};
11891
11892static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011893 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11894 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011895 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11896 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011897 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11898 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011899 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11900 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011901 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11902 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011903 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11904 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011905 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11906 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011907 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11908 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011909 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11910 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011911 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11912 msm_routing_put_voice_mixer),
11913};
11914
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011915static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011916 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11917MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011918 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11919 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011920 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11921MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011922 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11923 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011924 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11925MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011926 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11927 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011928 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11929MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011930 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11931 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011932 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11933MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011934 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11935 msm_routing_put_voice_mixer),
11936};
11937
Karthikeyan Mani57550082018-05-03 18:43:58 -070011938static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
11939 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11940 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11941 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11942 msm_routing_put_voice_mixer),
11943 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11944 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11945 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11946 msm_routing_put_voice_mixer),
11947 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11948 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11949 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11950 msm_routing_put_voice_mixer),
11951 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11953 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11954 msm_routing_put_voice_mixer),
11955 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11956 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11957 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11958 msm_routing_put_voice_mixer),
11959};
11960
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011961static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011962 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11963 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011964 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11965 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011966 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11967 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011968 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11969 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011970 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11971 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011972 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11973 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011974 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11975 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011976 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11977 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011978 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11979 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011980 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11981 msm_routing_put_voice_mixer),
11982};
11983
11984static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011985 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11986 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011987 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11988 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011989 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11990 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011991 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11992 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011993 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11994 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011995 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11996 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011997 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11998 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011999 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12000 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012001 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12002 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012003 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12004 msm_routing_put_voice_mixer),
12005};
12006
12007static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012008 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12009MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012010 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12011 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012012 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12013MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012014 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12015 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012016 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12017MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012018 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12019 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012020 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12021MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012022 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12023 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012024 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12025MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012026 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12027 msm_routing_put_voice_mixer),
12028};
12029
12030static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012031 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12032MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012033 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12034 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012035 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12036MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012037 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12038 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012039 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12040MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012041 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12042 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012043 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12044MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012045 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12046 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012047 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12048MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012049 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12050 msm_routing_put_voice_mixer),
12051};
12052
12053static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012054 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12055 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012056 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12057 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012058 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12059 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012060 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12061 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012062 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12063 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012064 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12065 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012066 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12067 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012068 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12069 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012070 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012072 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12073 msm_routing_put_voice_mixer),
12074};
12075
12076static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012077 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012079 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12080 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012081 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012083 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12084 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012085 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012087 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12088 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012089 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12090 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012091 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12092 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012093 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012095 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12096 msm_routing_put_voice_mixer),
12097};
12098
12099static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012100 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12101 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012102 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12103 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012104 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12105 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012106 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12107 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012108 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12109 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012110 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12111 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012112 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12113 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012114 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12115 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012116 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12117 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012118 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12119 msm_routing_put_voice_mixer),
12120};
12121
12122static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012123 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12124 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012125 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12126 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012127 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12128 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012129 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12130 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012131 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12132 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012133 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12134 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012135 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12136 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012137 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12138 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012139 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12140 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012141 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12142 msm_routing_put_voice_mixer),
12143};
12144
12145static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012146 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12147 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012148 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12149 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012150 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012152 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12153 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012154 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12155 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012156 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12157 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012158 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12159 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012160 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12161 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012162 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012164 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12165 msm_routing_put_voice_mixer),
12166};
12167
12168static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012169 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12170 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012171 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12172 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012173 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12174 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012175 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12176 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012177 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12178 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012179 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12180 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012181 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12182 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012183 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12184 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012185 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012187 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12188 msm_routing_put_voice_mixer),
12189};
12190
12191static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012192 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12193MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012194 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12195 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012196 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12197MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012198 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12199 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012200 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12201MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012202 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12203 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012204 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12205MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012206 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12207 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012208 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12209MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012210 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12211 msm_routing_put_voice_mixer),
12212};
12213
12214static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012215 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12216MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012217 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12218 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012219 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12220MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012221 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12222 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012223 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12224MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012225 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12226 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012227 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12228MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012229 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12230 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012231 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12232MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012233 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12234 msm_routing_put_voice_mixer),
12235};
12236
12237static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012238 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12239MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012240 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12241 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012242 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12243MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012244 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12245 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012246 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12247MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012248 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12249 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012250 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12251MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012252 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12253 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012254 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12255MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012256 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12257 msm_routing_put_voice_mixer),
12258};
12259
Rohit Kumara5077932017-09-10 22:05:05 +053012260static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012261 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12262MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012263 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12264 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012265 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12266MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012267 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12268 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012269 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12270MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012271 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12272 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012273 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12274MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012275 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12276 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012277 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12278MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012279 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12280 msm_routing_put_voice_mixer),
12281};
12282
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012283static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012284 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12285 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012286 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12287 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012288 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12289 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012290 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12291 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012292 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12293 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012294 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12295 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012296 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12297 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012298 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12299 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012300 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12301 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012302 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12303 msm_routing_put_voice_mixer),
12304};
12305
12306static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012307 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12308MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012309 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12310 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012311 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12312MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012313 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12314 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012315 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12316MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012317 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12318 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012319 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12320MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012321 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12322 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012323 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12324MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012325 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12326 msm_routing_put_voice_mixer),
12327};
12328
12329static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012330 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12331 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012332 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12333 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012334 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12335 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012336 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12337 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012338 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12339 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012340 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12341 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012342 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12343 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012344 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12345 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012346 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12347 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012348 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12349 msm_routing_put_voice_mixer),
12350};
12351
12352static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012353 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012355 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12356 msm_routing_put_voice_mixer),
12357};
12358
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012359static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12360 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12361 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12362 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12363 msm_routing_put_voice_mixer),
12364 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12365 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12366 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12367 msm_routing_put_voice_mixer),
12368 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12369 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12370 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12371 msm_routing_put_voice_mixer),
12372 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12373 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12374 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12375 msm_routing_put_voice_mixer),
12376 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12377 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12378 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12379 msm_routing_put_voice_mixer),
12380};
12381
12382static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12383 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12384 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12385 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12386 msm_routing_put_voice_mixer),
12387 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12388 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12389 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12390 msm_routing_put_voice_mixer),
12391 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12392 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12393 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12394 msm_routing_put_voice_mixer),
12395 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12396 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12397 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12398 msm_routing_put_voice_mixer),
12399 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12400 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12401 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12402 msm_routing_put_voice_mixer),
12403};
12404
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012405static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12406 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12408 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12409 msm_routing_put_voice_mixer),
12410 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12412 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12413 msm_routing_put_voice_mixer),
12414 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12415 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12416 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12417 msm_routing_put_voice_mixer),
12418 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12419 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12420 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12421 msm_routing_put_voice_mixer),
12422 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12424 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12425 msm_routing_put_voice_mixer),
12426};
12427
12428static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12429 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12430 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12431 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12432 msm_routing_put_voice_mixer),
12433 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12434 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12435 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12436 msm_routing_put_voice_mixer),
12437 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12438 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12439 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12440 msm_routing_put_voice_mixer),
12441 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12442 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12443 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12444 msm_routing_put_voice_mixer),
12445 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12446 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12447 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12448 msm_routing_put_voice_mixer),
12449};
12450
12451static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12452 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12453 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12454 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12455 msm_routing_put_voice_mixer),
12456 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12457 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12458 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12459 msm_routing_put_voice_mixer),
12460 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12461 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12462 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12463 msm_routing_put_voice_mixer),
12464 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12465 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12466 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12467 msm_routing_put_voice_mixer),
12468 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12469 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12470 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12471 msm_routing_put_voice_mixer),
12472};
12473
12474static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12475 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12477 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12478 msm_routing_put_voice_mixer),
12479 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12480 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12481 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12482 msm_routing_put_voice_mixer),
12483 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12484 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12485 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12486 msm_routing_put_voice_mixer),
12487 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12488 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12489 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12490 msm_routing_put_voice_mixer),
12491 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12492 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12493 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12494 msm_routing_put_voice_mixer),
12495};
12496
12497static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12498 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12499 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12500 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12501 msm_routing_put_voice_mixer),
12502 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12503 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12504 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12505 msm_routing_put_voice_mixer),
12506 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12507 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12508 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12509 msm_routing_put_voice_mixer),
12510 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12511 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12512 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12513 msm_routing_put_voice_mixer),
12514 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12515 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12516 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12517 msm_routing_put_voice_mixer),
12518};
12519
12520static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12521 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12522 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12523 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12524 msm_routing_put_voice_mixer),
12525 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12526 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12527 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12528 msm_routing_put_voice_mixer),
12529 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12530 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12531 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12532 msm_routing_put_voice_mixer),
12533 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12534 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12535 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12536 msm_routing_put_voice_mixer),
12537 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12538 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12539 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12540 msm_routing_put_voice_mixer),
12541};
12542
12543static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12544 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12546 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12547 msm_routing_put_voice_mixer),
12548 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12550 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12551 msm_routing_put_voice_mixer),
12552 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12554 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12555 msm_routing_put_voice_mixer),
12556 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12557 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12558 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12559 msm_routing_put_voice_mixer),
12560 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12562 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12563 msm_routing_put_voice_mixer),
12564};
12565
12566static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12567 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12568 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12569 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12570 msm_routing_put_voice_mixer),
12571 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12572 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12573 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12574 msm_routing_put_voice_mixer),
12575 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12576 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12577 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12578 msm_routing_put_voice_mixer),
12579 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12580 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12581 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12582 msm_routing_put_voice_mixer),
12583 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12584 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12585 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12586 msm_routing_put_voice_mixer),
12587};
12588
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012589static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012590 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12591 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012592 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12593 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012594 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12595 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012596 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12597 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012598};
12599
12600static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012601 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12602 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012603 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12604 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012605 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12606 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012607 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12608 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609};
12610
12611static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012614 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12615 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012616 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012618 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12619 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012620};
12621
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012622static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012623 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
12624 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012625 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12626 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012627 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012629 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12630 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012631 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012632 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12633 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012634 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012635 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12636 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012637 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012638 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12639 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012640 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012641 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12642 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012643 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012644 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12645 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012646 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12648 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012649 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012650 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12651 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012652 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012653 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12654 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012655 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012656 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12657 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012658 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012659 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12660 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012661 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012662 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12663 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012664 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012665 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12666 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012667 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012668 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12669 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012670 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
12671 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012672 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12673 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012674 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
12675MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012676 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012677 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12678 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12679 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12680 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12681 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12682 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012683 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12685 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12688 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12689 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
12690 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
12691 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12692 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
12693 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
12694 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12695 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
12697 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12698 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
12699 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
12700 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012701};
12702
12703static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012704 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
12705 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012706 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12707 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012708 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
12709 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012710 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12711 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012712 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012713 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12714 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012715 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012716 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12717 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012718 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012719 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12720 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012721 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012722 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12723 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012724 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012725 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12726 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012727 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012728 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12729 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012730 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012731 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12732 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012733 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012734 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12735 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012736 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012737 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12738 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012739 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012740 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12741 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012742 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012743 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12744 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012745 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012746 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12747 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012748 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012749 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12750 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012751 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012752 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12753 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012754 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12755 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12756 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12757 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12758 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12759 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012760 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12761 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12762 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12763 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12764 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12765 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12766 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
12767 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
12768 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12769 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
12770 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
12771 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12772 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
12773 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
12774 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12775 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
12777 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012778};
12779
12780static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012781 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
12782 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012783 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12784 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012785 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
12786 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012787 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12788 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012789 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012791 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12792 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012793 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
12794 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012795 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12796 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012797 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
12798 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012799 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12800 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012801 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
12802 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012803 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12804 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012805 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12806 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012807 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12808 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012809 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12810 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012811 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12812 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012813 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12816 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012817 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012819 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12820 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012821 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012823 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12824 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012825 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
12826 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012827 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12828 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012829 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012831 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12832 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012833 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012835 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12836 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012837 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012839 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12840 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012841 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012843 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12844 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012845 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12846 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12847 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12848 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12849 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12850 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012851 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12853 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12854 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12855 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12856 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12857 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
12858 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
12859 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12860 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
12861 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
12862 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12863 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
12865 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12866 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
12867 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
12868 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012869};
12870
12871static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012872 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12873 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012874 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12875 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012876 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012878 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12879 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012880 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12881 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012882 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12883 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012884 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12885 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012886 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12887 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012888 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12889 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012890 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12891 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012892 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12893 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012894 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12895 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012896 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12897 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012898 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12899 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012900 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12901 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012902 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12903 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012904 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12905 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012906 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12907 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012908 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12909 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012910 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12911 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012912 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12913 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012914 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12915 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012916 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12917 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012918 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12919 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012920 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12921 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012922 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12923 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012924 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012926 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12927 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012928 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012930 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12931 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012932 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012934 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12935 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012936 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012938 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12939 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012940 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12941 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012942 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12943 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012944 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012946 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12947 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012948 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12949 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12950 1, 0, msm_routing_get_voice_stub_mixer,
12951 msm_routing_put_voice_stub_mixer),
12952 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12954 1, 0, msm_routing_get_voice_stub_mixer,
12955 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012956 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12958 1, 0, msm_routing_get_voice_stub_mixer,
12959 msm_routing_put_voice_stub_mixer),
12960 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12962 1, 0, msm_routing_get_voice_stub_mixer,
12963 msm_routing_put_voice_stub_mixer),
12964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
12966 1, 0, msm_routing_get_voice_stub_mixer,
12967 msm_routing_put_voice_stub_mixer),
12968 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12969 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
12970 1, 0, msm_routing_get_voice_stub_mixer,
12971 msm_routing_put_voice_stub_mixer),
12972 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
12974 1, 0, msm_routing_get_voice_stub_mixer,
12975 msm_routing_put_voice_stub_mixer),
12976 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
12978 1, 0, msm_routing_get_voice_stub_mixer,
12979 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012980};
12981
12982static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012983 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12984 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012985 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12986 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012987 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12988 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012989 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12990 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012991 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12992 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012993 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12994 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012995 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12996 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012997 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12998 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012999 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13000 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013001 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13002 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013003 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013005 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13006 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013007 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13008 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013009 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13010 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013011 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013013 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13014 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013015 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013017 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13018 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13022 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13026 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13028 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13030 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13032 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13034 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13036 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13038 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13042 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013043 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13044 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13045 1, 0, msm_routing_get_voice_stub_mixer,
13046 msm_routing_put_voice_stub_mixer),
13047 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13049 1, 0, msm_routing_get_voice_stub_mixer,
13050 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13053 1, 0, msm_routing_get_voice_stub_mixer,
13054 msm_routing_put_voice_stub_mixer),
13055 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13056 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13057 1, 0, msm_routing_get_voice_stub_mixer,
13058 msm_routing_put_voice_stub_mixer),
13059 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13061 1, 0, msm_routing_get_voice_stub_mixer,
13062 msm_routing_put_voice_stub_mixer),
13063 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13065 1, 0, msm_routing_get_voice_stub_mixer,
13066 msm_routing_put_voice_stub_mixer),
13067 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13069 1, 0, msm_routing_get_voice_stub_mixer,
13070 msm_routing_put_voice_stub_mixer),
13071 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13072 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13073 1, 0, msm_routing_get_voice_stub_mixer,
13074 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013075};
13076
13077static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013078 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13079 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013080 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13081 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013082 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013084 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13085 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013086 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13087 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013088 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13089 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013090 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13091 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013092 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13093 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013094 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013096 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13097 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013098 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13099 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013100 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13101 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013102 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13103 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013104 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13105 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013106 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13107 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013108 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13109 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013110 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13111 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013112 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13113 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013116 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13117 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013118 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013120 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13121 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013122 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013124 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13125 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13127 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013128 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13129 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013130 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13131 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013132 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13133 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013134 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13135 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13137 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013138 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13139 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13140 1, 0, msm_routing_get_voice_stub_mixer,
13141 msm_routing_put_voice_stub_mixer),
13142 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13144 1, 0, msm_routing_get_voice_stub_mixer,
13145 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013146 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13148 1, 0, msm_routing_get_voice_stub_mixer,
13149 msm_routing_put_voice_stub_mixer),
13150 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13152 1, 0, msm_routing_get_voice_stub_mixer,
13153 msm_routing_put_voice_stub_mixer),
13154 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13156 1, 0, msm_routing_get_voice_stub_mixer,
13157 msm_routing_put_voice_stub_mixer),
13158 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13160 1, 0, msm_routing_get_voice_stub_mixer,
13161 msm_routing_put_voice_stub_mixer),
13162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13164 1, 0, msm_routing_get_voice_stub_mixer,
13165 msm_routing_put_voice_stub_mixer),
13166 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13168 1, 0, msm_routing_get_voice_stub_mixer,
13169 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013170};
13171
13172static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013173 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13174 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013175 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13176 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013177 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013179 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13180 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013181 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13183 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013184 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013185 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13186 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013187 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13188 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013189 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13190 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013191 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13192 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013193 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013195 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13196 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013197 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13198 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013199 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13200 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013201 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13202 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013203 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13204 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013205 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013207 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13208 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013211 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13212 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013215 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13216 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013219 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13220 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013221 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013223 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13224 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013227 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13228 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013229 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013231 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13232 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013235 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13236 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013237 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13239 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13240 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13242 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013243 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13244 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13245 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13246 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13248 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13249 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13250 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13251 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13254 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13255 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13256 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13257 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13258 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13259 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13260 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013261};
13262
13263static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013264 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13265 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013266 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013268 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013270 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013272 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013274 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013278 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013282 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013288 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013290 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013292 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013294 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013296 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013298 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013300 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13301 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013302 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13303 msm_routing_put_port_mixer),
13304};
13305
13306static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013307 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013309 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013311 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013313 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013315 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013317 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013319 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013321 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013323 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13324 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013325 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013327 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13328 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013329 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013331 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13332 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013333 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013335 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13336 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013337 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013339 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013341 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013343 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013345 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13346 msm_routing_put_port_mixer),
13347};
13348
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013349static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13350 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13351 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13352 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13353 msm_routing_put_port_mixer),
13354 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13355 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13356 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13357 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013358 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13359 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13360 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13361 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013362};
13363
13364static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13365 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13367 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13368 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013369 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13371 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13372 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013373};
13374
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013375static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013376 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13377 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013378 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013380 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13381 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013382 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013384 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13385 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013386 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013388 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013390 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013392 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13393 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013394 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013396 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13397 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013398 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013400 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13401 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013402 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013404 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13405 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013406 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013408 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013410 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013412 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013414 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013416 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013418 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013420 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013422 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013424 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13425 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013426 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013428 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13429 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013430 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013432 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13433 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013434 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013438 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013440 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13441 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013442 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013444 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013446 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013448 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13449 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013450 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013452 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013454 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013456 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013458 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013460 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13462MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013463 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013464};
13465
13466static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013467 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13468 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013469 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013471 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13472 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013473 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013475 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13476 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013477 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013479 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13480 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013481 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013483 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13484 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013485 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013487 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13488 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013489 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13490 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013491};
13492
13493static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013494 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013496 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013498 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13499 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013500 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013502 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013504 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013506 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013508 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13509 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013510};
13511
13512static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013513 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13514 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013515 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013517 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013519 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013523 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13524 msm_routing_put_port_mixer),
13525};
13526
13527static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013528 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13529 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013530 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013532 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13533 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013534 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013536 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13537 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013538 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13539 msm_routing_put_port_mixer),
13540};
13541
Rohit Kumara5077932017-09-10 22:05:05 +053013542static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013543 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13544 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013545 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013547 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13548 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013549 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013551 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013553 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13554 msm_routing_put_port_mixer),
13555};
13556
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013557static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013558 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13559 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013560 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013562 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13563 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013564 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013566 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13567 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013568 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013570 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13571 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013572 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013574 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13575 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013576 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013578 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013580 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13581 msm_routing_put_port_mixer),
13582};
13583
13584static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013585 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013587 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013589 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013591 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013593 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013595 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13596 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013597 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013599 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13600 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013601 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13602 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013603 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13604 msm_routing_put_port_mixer),
13605};
13606
13607static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013608 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13609 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013610 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013612 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13613 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013614 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013616 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13617 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013618 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013620 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13621 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013622 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013624 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13625 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013626 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013628 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13629 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013630 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013632 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13633 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013634 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013636 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013638 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013640 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13641 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013642 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013644 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13645 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013646 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013648 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13649 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013650 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013652 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13653 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013654 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13655 msm_routing_put_port_mixer),
13656};
13657
13658static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013659 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13660 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013661 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13666 msm_routing_put_port_mixer),
13667};
13668
13669static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013670 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13671 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013672 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013674 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13675 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013676 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13677 msm_routing_put_port_mixer),
13678};
13679
13680
13681static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013682 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013684 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13685 msm_routing_put_port_mixer),
13686};
13687
13688static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013689 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13690 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013691 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13692 msm_routing_put_port_mixer),
13693};
13694
Karthikeyan Mani57550082018-05-03 18:43:58 -070013695static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
13696 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13697 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13698 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13699 msm_routing_put_port_mixer),
13700};
13701
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013702static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013703 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013705 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13706 msm_routing_put_port_mixer),
13707};
13708
13709static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013710 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013712 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013714 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013716 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13717 msm_routing_put_port_mixer),
13718};
13719
13720static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013721 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13722 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013723 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013725 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13726 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013727 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013729 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13730 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013731 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013733 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13734 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013735 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013737 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13738 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013739 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013741 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13742 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013743 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013745 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13746 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013747 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013749 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13750 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013751 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013753 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13754 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013755 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013757 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13758 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013759 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13760 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013761};
13762
13763static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013764 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13765 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013766 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
13767 msm_routing_put_port_mixer),
13768};
13769
13770static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013771 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013773 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013775 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013777 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013779 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13780 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013781 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013783 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13784 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013785 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013787 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13788 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013789 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013791 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013793 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013795 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013797 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013799 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13800 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013801 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013803 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13804 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013805 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13806 msm_routing_put_port_mixer),
13807};
13808
Rohit Kumara5077932017-09-10 22:05:05 +053013809static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013810 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013812 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013814 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013816 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013818 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013820 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013822 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013824 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013828 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013832 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013836 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13837 msm_routing_put_port_mixer),
13838};
13839
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013840static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013841 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013843 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13844 msm_routing_get_port_mixer,
13845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013848 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13849 msm_routing_get_port_mixer,
13850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013851 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13852 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013853 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13854 msm_routing_get_port_mixer,
13855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013856 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13857 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013858 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13859 msm_routing_get_port_mixer,
13860 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013861 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13862 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013863 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13864 msm_routing_get_port_mixer,
13865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013866 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13867 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013868 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13869 msm_routing_get_port_mixer,
13870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013871 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13872 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013873 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13874 msm_routing_get_port_mixer,
13875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013876 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13877 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013878 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13879 msm_routing_get_port_mixer,
13880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013881 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13882 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013883 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13884 msm_routing_get_port_mixer,
13885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013886 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013888 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13889 msm_routing_get_port_mixer,
13890 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013891 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13892 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013893 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13894 msm_routing_get_port_mixer,
13895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013896 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13897 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013898 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13899 msm_routing_get_port_mixer,
13900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013901 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13902 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013903 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13904 msm_routing_get_port_mixer,
13905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013906 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13907 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013908 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13909 msm_routing_get_port_mixer,
13910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013911 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013913 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13914 msm_routing_get_port_mixer,
13915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013916 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13917 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013918 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13919 msm_routing_get_port_mixer,
13920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013921 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13922 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013923 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13924 msm_routing_get_port_mixer,
13925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013926 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13927 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013928 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13929 msm_routing_get_port_mixer,
13930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013931 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13932 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013933 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13934 msm_routing_get_port_mixer,
13935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013936 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13937 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013938 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13939 msm_routing_get_port_mixer,
13940 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013941};
13942
13943static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013944 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013946 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13947 msm_routing_get_port_mixer,
13948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013949 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13950 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013951 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13952 msm_routing_get_port_mixer,
13953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013954 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13955 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013956 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13957 msm_routing_get_port_mixer,
13958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013959 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13960 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013961 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13962 msm_routing_get_port_mixer,
13963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013964 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13965 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013966 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13967 msm_routing_get_port_mixer,
13968 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013969 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13970 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013971 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13972 msm_routing_get_port_mixer,
13973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013974 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13975 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013976 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13977 msm_routing_get_port_mixer,
13978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013979 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13980 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013981 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13982 msm_routing_get_port_mixer,
13983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013984 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13985 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013986 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13987 msm_routing_get_port_mixer,
13988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013989 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13990 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013991 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13992 msm_routing_get_port_mixer,
13993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013994 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13995 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013996 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13997 msm_routing_get_port_mixer,
13998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013999 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14000 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014001 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14002 msm_routing_get_port_mixer,
14003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014004 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14005 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014006 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14007 msm_routing_get_port_mixer,
14008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014009 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14010 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014011 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14012 msm_routing_get_port_mixer,
14013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014014 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14015 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014016 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14017 msm_routing_get_port_mixer,
14018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014019 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14020 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014021 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14022 msm_routing_get_port_mixer,
14023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014024 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014026 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14027 msm_routing_get_port_mixer,
14028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014029 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14030 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014031 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14032 msm_routing_get_port_mixer,
14033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014034 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14035 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014036 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14037 msm_routing_get_port_mixer,
14038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014039 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014041 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14042 msm_routing_get_port_mixer,
14043 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014044};
14045
14046static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014049 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14050 msm_routing_get_port_mixer,
14051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014052 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014054 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14055 msm_routing_get_port_mixer,
14056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014057 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14058 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014059 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14060 msm_routing_get_port_mixer,
14061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014062 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14063 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014064 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14065 msm_routing_get_port_mixer,
14066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014067 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14068 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014069 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14070 msm_routing_get_port_mixer,
14071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014072 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14073 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014074 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14075 msm_routing_get_port_mixer,
14076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014077 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14078 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014079 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14080 msm_routing_get_port_mixer,
14081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014082 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14083 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014084 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14085 msm_routing_get_port_mixer,
14086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014087 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014089 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14090 msm_routing_get_port_mixer,
14091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014092 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14093 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014094 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14095 msm_routing_get_port_mixer,
14096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014097 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14098 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014099 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14100 msm_routing_get_port_mixer,
14101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014102 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14103 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014104 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14105 msm_routing_get_port_mixer,
14106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014107 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014109 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14110 msm_routing_get_port_mixer,
14111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014112 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14113 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014114 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14115 msm_routing_get_port_mixer,
14116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014117 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14118 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014119 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14120 msm_routing_get_port_mixer,
14121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014122 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14123 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014124 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14125 msm_routing_get_port_mixer,
14126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014127 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014129 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14130 msm_routing_get_port_mixer,
14131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014132 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14133 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014134 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14135 msm_routing_get_port_mixer,
14136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014137 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14138 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014139 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14140 msm_routing_get_port_mixer,
14141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014142 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014144 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14145 msm_routing_get_port_mixer,
14146 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014147};
14148
14149static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014150 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014152 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14153 msm_routing_get_port_mixer,
14154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014155 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14156 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014157 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14158 msm_routing_get_port_mixer,
14159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014160 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14161 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014162 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14163 msm_routing_get_port_mixer,
14164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014165 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014167 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14168 msm_routing_get_port_mixer,
14169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014170 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14171 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014172 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14173 msm_routing_get_port_mixer,
14174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014175 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14176 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014177 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14178 msm_routing_get_port_mixer,
14179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014180 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14181 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014182 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14183 msm_routing_get_port_mixer,
14184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014185 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14186 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014187 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14188 msm_routing_get_port_mixer,
14189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014190 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14191 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014192 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14193 msm_routing_get_port_mixer,
14194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014195 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14196 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014197 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14198 msm_routing_get_port_mixer,
14199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014200 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14201 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014202 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14203 msm_routing_get_port_mixer,
14204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014205 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14206 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014207 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14208 msm_routing_get_port_mixer,
14209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014210 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14211 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014212 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14213 msm_routing_get_port_mixer,
14214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014215 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14216 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014217 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14218 msm_routing_get_port_mixer,
14219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014220 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14221 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014222 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14223 msm_routing_get_port_mixer,
14224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014225 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14226 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014227 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14228 msm_routing_get_port_mixer,
14229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014230 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014232 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14233 msm_routing_get_port_mixer,
14234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014235 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14236 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014237 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14238 msm_routing_get_port_mixer,
14239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014240 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14241 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014242 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14243 msm_routing_get_port_mixer,
14244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014245 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14246 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014247 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14248 msm_routing_get_port_mixer,
14249 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014250};
14251
14252static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014253 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14254 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014255 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14256 msm_routing_get_port_mixer,
14257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014260 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14261 msm_routing_get_port_mixer,
14262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014263 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014265 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14266 msm_routing_get_port_mixer,
14267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014268 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14269 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014270 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14271 msm_routing_get_port_mixer,
14272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014273 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14274 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014275 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14276 msm_routing_get_port_mixer,
14277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014278 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14279 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014280 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14281 msm_routing_get_port_mixer,
14282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014283 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14284 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014285 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14286 msm_routing_get_port_mixer,
14287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014288 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14289 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014290 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14291 msm_routing_get_port_mixer,
14292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014293 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14294 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014295 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14296 msm_routing_get_port_mixer,
14297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014298 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014300 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14301 msm_routing_get_port_mixer,
14302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014303 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14304 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014305 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14306 msm_routing_get_port_mixer,
14307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014308 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14309 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014310 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14311 msm_routing_get_port_mixer,
14312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014313 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014315 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14316 msm_routing_get_port_mixer,
14317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014318 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14319 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014320 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14321 msm_routing_get_port_mixer,
14322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014323 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14324 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014325 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14326 msm_routing_get_port_mixer,
14327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014328 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14329 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014330 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14331 msm_routing_get_port_mixer,
14332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014333 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14334 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014335 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14336 msm_routing_get_port_mixer,
14337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014338 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14339 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014340 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14341 msm_routing_get_port_mixer,
14342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014343 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14344 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014345 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14346 msm_routing_get_port_mixer,
14347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014348 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14349 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014350 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14351 msm_routing_get_port_mixer,
14352 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014353};
14354
14355static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014356 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14357 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014358 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14359 msm_routing_get_port_mixer,
14360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014361 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14362 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014363 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14364 msm_routing_get_port_mixer,
14365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014366 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14367 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014368 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14369 msm_routing_get_port_mixer,
14370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014371 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14372 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014373 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14374 msm_routing_get_port_mixer,
14375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014376 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14377 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014378 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14379 msm_routing_get_port_mixer,
14380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014381 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14382 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014383 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14384 msm_routing_get_port_mixer,
14385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014386 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14387 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014388 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14389 msm_routing_get_port_mixer,
14390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014391 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14392 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014393 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14394 msm_routing_get_port_mixer,
14395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014396 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14397 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014398 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14399 msm_routing_get_port_mixer,
14400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014401 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14402 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014403 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14404 msm_routing_get_port_mixer,
14405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014406 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14407 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014408 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14409 msm_routing_get_port_mixer,
14410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014411 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14412 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014413 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14414 msm_routing_get_port_mixer,
14415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014416 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14417 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014418 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14419 msm_routing_get_port_mixer,
14420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014421 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14422 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014423 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14424 msm_routing_get_port_mixer,
14425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014426 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14427 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014428 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14429 msm_routing_get_port_mixer,
14430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014431 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14432 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014433 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14434 msm_routing_get_port_mixer,
14435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014436 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14437 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014438 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14439 msm_routing_get_port_mixer,
14440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014441 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14442 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014443 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14444 msm_routing_get_port_mixer,
14445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014446 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14447 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014448 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14449 msm_routing_get_port_mixer,
14450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014451 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14452 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014453 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14454 msm_routing_get_port_mixer,
14455 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014456};
14457
14458static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014459 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014461 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14462 msm_routing_get_port_mixer,
14463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014464 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14465 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014466 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14467 msm_routing_get_port_mixer,
14468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014469 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14470 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014471 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14472 msm_routing_get_port_mixer,
14473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014474 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14475 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014476 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14477 msm_routing_get_port_mixer,
14478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014479 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014481 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14482 msm_routing_get_port_mixer,
14483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014484 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14485 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014486 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14487 msm_routing_get_port_mixer,
14488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014489 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14490 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014491 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14492 msm_routing_get_port_mixer,
14493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014494 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14495 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014496 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14497 msm_routing_get_port_mixer,
14498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014499 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14500 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014501 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14502 msm_routing_get_port_mixer,
14503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014504 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14505 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014506 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14507 msm_routing_get_port_mixer,
14508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014509 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14510 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014511 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14512 msm_routing_get_port_mixer,
14513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014514 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14515 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014516 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14517 msm_routing_get_port_mixer,
14518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014519 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14520 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014521 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14522 msm_routing_get_port_mixer,
14523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014524 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14525 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014526 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14527 msm_routing_get_port_mixer,
14528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014529 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14530 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014531 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14532 msm_routing_get_port_mixer,
14533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014534 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14535 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014536 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14537 msm_routing_get_port_mixer,
14538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014539 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14540 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014541 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14542 msm_routing_get_port_mixer,
14543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014544 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14545 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014546 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14547 msm_routing_get_port_mixer,
14548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014549 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14550 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014551 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14552 msm_routing_get_port_mixer,
14553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014554 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14555 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014556 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14557 msm_routing_get_port_mixer,
14558 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014559};
14560
14561static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014562 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14563 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014564 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14565 msm_routing_get_port_mixer,
14566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014567 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14568 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014569 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14570 msm_routing_get_port_mixer,
14571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014572 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014574 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14575 msm_routing_get_port_mixer,
14576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014577 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14578 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014579 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14580 msm_routing_get_port_mixer,
14581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014582 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14583 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014584 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14585 msm_routing_get_port_mixer,
14586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014587 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14588 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014589 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14590 msm_routing_get_port_mixer,
14591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014592 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14593 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014594 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14595 msm_routing_get_port_mixer,
14596 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014597 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14598 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014599 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14600 msm_routing_get_port_mixer,
14601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014602 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14603 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014604 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14605 msm_routing_get_port_mixer,
14606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014607 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14608 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014609 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14610 msm_routing_get_port_mixer,
14611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014612 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14613 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014614 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14615 msm_routing_get_port_mixer,
14616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014617 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14618 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014619 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14620 msm_routing_get_port_mixer,
14621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014622 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14623 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014624 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14625 msm_routing_get_port_mixer,
14626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014627 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14628 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014629 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14630 msm_routing_get_port_mixer,
14631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014632 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14633 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014634 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14635 msm_routing_get_port_mixer,
14636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014637 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14638 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014639 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14640 msm_routing_get_port_mixer,
14641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014642 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14643 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014644 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14645 msm_routing_get_port_mixer,
14646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014647 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14648 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014649 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14650 msm_routing_get_port_mixer,
14651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014652 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14653 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014654 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14655 msm_routing_get_port_mixer,
14656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014657 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14658 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014659 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14660 msm_routing_get_port_mixer,
14661 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014662};
14663
14664static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014665 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14666 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014667 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14668 msm_routing_get_port_mixer,
14669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014670 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014672 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14673 msm_routing_get_port_mixer,
14674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014675 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14676 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014677 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14678 msm_routing_get_port_mixer,
14679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014680 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14681 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014682 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14683 msm_routing_get_port_mixer,
14684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014685 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14686 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014687 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14688 msm_routing_get_port_mixer,
14689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014690 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14691 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014692 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14693 msm_routing_get_port_mixer,
14694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014695 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14696 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014697 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14698 msm_routing_get_port_mixer,
14699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014700 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14701 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014702 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14703 msm_routing_get_port_mixer,
14704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014705 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14706 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014707 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14708 msm_routing_get_port_mixer,
14709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014710 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14711 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014712 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14713 msm_routing_get_port_mixer,
14714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014715 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14716 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014717 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14718 msm_routing_get_port_mixer,
14719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014720 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14721 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014722 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14723 msm_routing_get_port_mixer,
14724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014725 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14726 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014727 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14728 msm_routing_get_port_mixer,
14729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014730 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14731 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014732 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14733 msm_routing_get_port_mixer,
14734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014735 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14736 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014737 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14738 msm_routing_get_port_mixer,
14739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014740 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14741 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014742 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14743 msm_routing_get_port_mixer,
14744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014745 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14746 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014747 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14748 msm_routing_get_port_mixer,
14749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014750 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14751 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014752 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14753 msm_routing_get_port_mixer,
14754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014755 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14756 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014757 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14758 msm_routing_get_port_mixer,
14759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014760 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14761 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014762 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14763 msm_routing_get_port_mixer,
14764 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014765};
14766
14767static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014768 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14769 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014770 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14771 msm_routing_get_port_mixer,
14772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014773 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014775 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14776 msm_routing_get_port_mixer,
14777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014778 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14779 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014780 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14781 msm_routing_get_port_mixer,
14782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014783 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14784 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014785 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14786 msm_routing_get_port_mixer,
14787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014788 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14789 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014790 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14791 msm_routing_get_port_mixer,
14792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014793 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14794 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014795 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14796 msm_routing_get_port_mixer,
14797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014798 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14799 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014800 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14801 msm_routing_get_port_mixer,
14802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014803 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14804 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014805 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14806 msm_routing_get_port_mixer,
14807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014808 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14809 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014810 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14811 msm_routing_get_port_mixer,
14812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014813 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014815 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14816 msm_routing_get_port_mixer,
14817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014818 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14819 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014820 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14821 msm_routing_get_port_mixer,
14822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014823 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14824 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014825 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14826 msm_routing_get_port_mixer,
14827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014828 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14829 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014830 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14831 msm_routing_get_port_mixer,
14832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014833 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14834 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014835 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14836 msm_routing_get_port_mixer,
14837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014838 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14839 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014840 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14841 msm_routing_get_port_mixer,
14842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014843 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14844 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014845 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14846 msm_routing_get_port_mixer,
14847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014848 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14849 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014850 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14851 msm_routing_get_port_mixer,
14852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014853 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14854 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014855 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14856 msm_routing_get_port_mixer,
14857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014858 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14859 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014860 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14861 msm_routing_get_port_mixer,
14862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014863 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14864 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014865 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14866 msm_routing_get_port_mixer,
14867 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014868};
14869
14870static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014871 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14872 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014873 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14874 msm_routing_get_port_mixer,
14875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014876 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14877 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014878 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14879 msm_routing_get_port_mixer,
14880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014881 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14882 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014883 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14884 msm_routing_get_port_mixer,
14885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014886 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14887 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014888 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14889 msm_routing_get_port_mixer,
14890 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014891 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14892 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014893 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14894 msm_routing_get_port_mixer,
14895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014896 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14897 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014898 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14899 msm_routing_get_port_mixer,
14900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014901 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14902 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014903 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14904 msm_routing_get_port_mixer,
14905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014906 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14907 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014908 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14909 msm_routing_get_port_mixer,
14910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014911 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14912 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014913 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14914 msm_routing_get_port_mixer,
14915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014916 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14917 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014918 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14919 msm_routing_get_port_mixer,
14920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014921 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14922 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014923 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14924 msm_routing_get_port_mixer,
14925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014926 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14927 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014928 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14929 msm_routing_get_port_mixer,
14930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014931 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14932 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014933 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14934 msm_routing_get_port_mixer,
14935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014936 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14937 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014938 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14939 msm_routing_get_port_mixer,
14940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014941 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14942 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014943 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14944 msm_routing_get_port_mixer,
14945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014946 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14947 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014948 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14949 msm_routing_get_port_mixer,
14950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014951 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14952 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014953 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14954 msm_routing_get_port_mixer,
14955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014956 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14957 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014958 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14959 msm_routing_get_port_mixer,
14960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014961 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14962 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014963 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14964 msm_routing_get_port_mixer,
14965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014966 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14967 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014968 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14969 msm_routing_get_port_mixer,
14970 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014971};
14972
14973static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014974 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14975 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014976 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14977 msm_routing_get_port_mixer,
14978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014979 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14980 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014981 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14982 msm_routing_get_port_mixer,
14983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014984 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014986 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14987 msm_routing_get_port_mixer,
14988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014989 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14990 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014991 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14992 msm_routing_get_port_mixer,
14993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014994 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14995 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014996 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14997 msm_routing_get_port_mixer,
14998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014999 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15000 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015001 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15002 msm_routing_get_port_mixer,
15003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015004 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15005 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015006 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15007 msm_routing_get_port_mixer,
15008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015009 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15010 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015011 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15012 msm_routing_get_port_mixer,
15013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015014 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15015 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015016 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15017 msm_routing_get_port_mixer,
15018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015019 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15020 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015021 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15022 msm_routing_get_port_mixer,
15023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015024 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15025 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015026 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15027 msm_routing_get_port_mixer,
15028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015029 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15030 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015031 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15032 msm_routing_get_port_mixer,
15033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015034 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15035 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015036 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15037 msm_routing_get_port_mixer,
15038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015039 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015041 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15042 msm_routing_get_port_mixer,
15043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015044 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15045 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015046 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15047 msm_routing_get_port_mixer,
15048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015049 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15050 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015051 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15052 msm_routing_get_port_mixer,
15053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015054 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15055 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015056 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15057 msm_routing_get_port_mixer,
15058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015059 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15060 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015061 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15062 msm_routing_get_port_mixer,
15063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015064 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15065 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015066 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15067 msm_routing_get_port_mixer,
15068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015069 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15070 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015071 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15072 msm_routing_get_port_mixer,
15073 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015074};
15075
15076static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015077 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15078 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015079 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15080 msm_routing_get_port_mixer,
15081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015082 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15083 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015084 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15085 msm_routing_get_port_mixer,
15086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015087 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015089 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15090 msm_routing_get_port_mixer,
15091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015092 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15093 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015094 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15095 msm_routing_get_port_mixer,
15096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015097 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15098 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015099 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15100 msm_routing_get_port_mixer,
15101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015102 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15103 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015104 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15105 msm_routing_get_port_mixer,
15106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015107 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15108 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015109 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15110 msm_routing_get_port_mixer,
15111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015112 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15113 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015114 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15115 msm_routing_get_port_mixer,
15116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015117 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15118 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015119 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15120 msm_routing_get_port_mixer,
15121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015122 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15123 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015124 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15125 msm_routing_get_port_mixer,
15126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015127 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15128 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015129 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15130 msm_routing_get_port_mixer,
15131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015132 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15133 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015134 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15135 msm_routing_get_port_mixer,
15136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015137 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15138 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015139 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15140 msm_routing_get_port_mixer,
15141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015142 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015144 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15145 msm_routing_get_port_mixer,
15146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015147 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15148 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015149 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15150 msm_routing_get_port_mixer,
15151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015152 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15153 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015154 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15155 msm_routing_get_port_mixer,
15156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015157 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15158 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015159 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15160 msm_routing_get_port_mixer,
15161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015162 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15163 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015164 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15165 msm_routing_get_port_mixer,
15166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015167 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15168 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015169 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15170 msm_routing_get_port_mixer,
15171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015172 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15173 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015174 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15175 msm_routing_get_port_mixer,
15176 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015177};
15178
15179static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015180 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15181 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015182 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15183 msm_routing_get_port_mixer,
15184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015185 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15186 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015187 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15188 msm_routing_get_port_mixer,
15189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015190 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015192 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15193 msm_routing_get_port_mixer,
15194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015195 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15196 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015197 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15198 msm_routing_get_port_mixer,
15199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015200 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15201 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015202 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15203 msm_routing_get_port_mixer,
15204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015205 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15206 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015207 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15208 msm_routing_get_port_mixer,
15209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015210 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15211 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015212 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15213 msm_routing_get_port_mixer,
15214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015215 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15216 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015217 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15218 msm_routing_get_port_mixer,
15219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015220 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15221 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015222 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15223 msm_routing_get_port_mixer,
15224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015225 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015227 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15228 msm_routing_get_port_mixer,
15229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015230 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15231 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015232 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15233 msm_routing_get_port_mixer,
15234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015235 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15236 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015237 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15238 msm_routing_get_port_mixer,
15239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015240 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15241 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015242 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15243 msm_routing_get_port_mixer,
15244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015245 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15246 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015247 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15248 msm_routing_get_port_mixer,
15249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015250 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15251 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015252 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15253 msm_routing_get_port_mixer,
15254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015255 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15256 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015257 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15258 msm_routing_get_port_mixer,
15259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015260 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15261 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015262 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15263 msm_routing_get_port_mixer,
15264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015265 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15266 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015267 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15268 msm_routing_get_port_mixer,
15269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015270 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15271 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015272 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15273 msm_routing_get_port_mixer,
15274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015275 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15276 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015277 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15278 msm_routing_get_port_mixer,
15279 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015280};
15281
15282static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015283 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15284 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015285 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15286 msm_routing_get_port_mixer,
15287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015288 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15289 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015290 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15291 msm_routing_get_port_mixer,
15292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015293 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15294 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015295 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15296 msm_routing_get_port_mixer,
15297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015298 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15299 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015300 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15301 msm_routing_get_port_mixer,
15302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015303 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15304 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015305 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15306 msm_routing_get_port_mixer,
15307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015308 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15309 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015310 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15311 msm_routing_get_port_mixer,
15312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015313 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15314 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015315 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15316 msm_routing_get_port_mixer,
15317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015318 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15319 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015320 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15321 msm_routing_get_port_mixer,
15322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015323 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15324 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015325 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15326 msm_routing_get_port_mixer,
15327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015328 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15329 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015330 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15331 msm_routing_get_port_mixer,
15332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015333 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15334 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015335 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15336 msm_routing_get_port_mixer,
15337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015338 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15339 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015340 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15341 msm_routing_get_port_mixer,
15342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015343 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15344 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015345 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15346 msm_routing_get_port_mixer,
15347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015348 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15349 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015350 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15351 msm_routing_get_port_mixer,
15352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015353 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15354 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015355 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15356 msm_routing_get_port_mixer,
15357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015358 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15359 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015360 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15361 msm_routing_get_port_mixer,
15362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015363 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15364 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015365 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15366 msm_routing_get_port_mixer,
15367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015368 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15369 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015370 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15371 msm_routing_get_port_mixer,
15372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015373 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15374 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015375 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15376 msm_routing_get_port_mixer,
15377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015378 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15379 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015380 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15381 msm_routing_get_port_mixer,
15382 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015383};
15384
15385static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015386 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15387 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015388 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15389 msm_routing_get_port_mixer,
15390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015391 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15392 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015393 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15394 msm_routing_get_port_mixer,
15395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015396 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15397 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015398 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15399 msm_routing_get_port_mixer,
15400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015401 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15402 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015403 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15404 msm_routing_get_port_mixer,
15405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015406 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15407 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015408 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15409 msm_routing_get_port_mixer,
15410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015411 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15412 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015413 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15414 msm_routing_get_port_mixer,
15415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015416 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15417 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015418 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15419 msm_routing_get_port_mixer,
15420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015421 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15422 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015423 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15424 msm_routing_get_port_mixer,
15425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015426 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15427 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015428 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15429 msm_routing_get_port_mixer,
15430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015431 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15432 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015433 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15434 msm_routing_get_port_mixer,
15435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015436 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15437 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015438 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15439 msm_routing_get_port_mixer,
15440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015441 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15442 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015443 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15444 msm_routing_get_port_mixer,
15445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015446 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15447 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015448 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15449 msm_routing_get_port_mixer,
15450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015451 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15452 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015453 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15454 msm_routing_get_port_mixer,
15455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015456 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15457 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015458 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15459 msm_routing_get_port_mixer,
15460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015461 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15462 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015463 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15464 msm_routing_get_port_mixer,
15465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015466 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15467 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015468 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15469 msm_routing_get_port_mixer,
15470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015471 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15472 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015473 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15474 msm_routing_get_port_mixer,
15475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015476 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15477 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015478 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15479 msm_routing_get_port_mixer,
15480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015481 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15482 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015483 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15484 msm_routing_get_port_mixer,
15485 msm_routing_put_port_mixer),
15486};
15487
15488static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015489 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15490 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015491 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15492 msm_routing_get_port_mixer,
15493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015494 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015496 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15497 msm_routing_get_port_mixer,
15498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015499 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15500 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015501 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15502 msm_routing_get_port_mixer,
15503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015504 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15505 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015506 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15507 msm_routing_get_port_mixer,
15508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015509 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15510 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015511 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15512 msm_routing_get_port_mixer,
15513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015514 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15515 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015516 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15517 msm_routing_get_port_mixer,
15518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015519 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15520 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015521 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15522 msm_routing_get_port_mixer,
15523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015524 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15525 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015526 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15527 msm_routing_get_port_mixer,
15528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015529 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15530 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015531 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15532 msm_routing_get_port_mixer,
15533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015534 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015536 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15537 msm_routing_get_port_mixer,
15538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015539 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15540 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015541 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15542 msm_routing_get_port_mixer,
15543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015544 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15545 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015546 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15547 msm_routing_get_port_mixer,
15548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015549 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15550 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015551 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15552 msm_routing_get_port_mixer,
15553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015554 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15555 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015556 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15557 msm_routing_get_port_mixer,
15558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015559 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15560 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015561 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15562 msm_routing_get_port_mixer,
15563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015564 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15565 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015566 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15567 msm_routing_get_port_mixer,
15568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015569 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15570 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015571 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15572 msm_routing_get_port_mixer,
15573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015574 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15575 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015576 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15577 msm_routing_get_port_mixer,
15578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015579 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015581 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15582 msm_routing_get_port_mixer,
15583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015584 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15585 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015586 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15587 msm_routing_get_port_mixer,
15588 msm_routing_put_port_mixer),
15589};
15590
15591static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015592 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15593 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015594 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15595 msm_routing_get_port_mixer,
15596 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015597 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15598 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015599 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15600 msm_routing_get_port_mixer,
15601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015602 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15603 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015604 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15605 msm_routing_get_port_mixer,
15606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015607 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015609 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15610 msm_routing_get_port_mixer,
15611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015612 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15613 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015614 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15615 msm_routing_get_port_mixer,
15616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015617 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15618 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015619 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15620 msm_routing_get_port_mixer,
15621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015622 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15623 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015624 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15625 msm_routing_get_port_mixer,
15626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015627 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15628 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015629 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15630 msm_routing_get_port_mixer,
15631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015632 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15633 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015634 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15635 msm_routing_get_port_mixer,
15636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015637 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15638 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015639 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15640 msm_routing_get_port_mixer,
15641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015642 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15643 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015644 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15645 msm_routing_get_port_mixer,
15646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015647 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15648 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015649 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15650 msm_routing_get_port_mixer,
15651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015652 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15653 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015654 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15655 msm_routing_get_port_mixer,
15656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015657 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15658 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015659 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15660 msm_routing_get_port_mixer,
15661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015662 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15663 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015664 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15665 msm_routing_get_port_mixer,
15666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015667 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15668 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015669 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15670 msm_routing_get_port_mixer,
15671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015672 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15673 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015674 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15675 msm_routing_get_port_mixer,
15676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015677 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15678 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015679 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15680 msm_routing_get_port_mixer,
15681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015682 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15683 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015684 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15685 msm_routing_get_port_mixer,
15686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015687 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15688 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015689 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15690 msm_routing_get_port_mixer,
15691 msm_routing_put_port_mixer),
15692};
15693
15694static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015695 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15696 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015697 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15698 msm_routing_get_port_mixer,
15699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015700 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15701 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015702 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15703 msm_routing_get_port_mixer,
15704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015705 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15706 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015707 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15708 msm_routing_get_port_mixer,
15709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015710 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15711 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015712 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15713 msm_routing_get_port_mixer,
15714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015715 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15716 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015717 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15718 msm_routing_get_port_mixer,
15719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015720 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15721 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015722 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15723 msm_routing_get_port_mixer,
15724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015725 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15726 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015727 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15728 msm_routing_get_port_mixer,
15729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015730 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015732 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15733 msm_routing_get_port_mixer,
15734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015735 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15736 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015737 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15738 msm_routing_get_port_mixer,
15739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015740 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15741 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015742 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15743 msm_routing_get_port_mixer,
15744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015745 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15746 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015747 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15748 msm_routing_get_port_mixer,
15749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015750 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15751 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015752 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15753 msm_routing_get_port_mixer,
15754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015755 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15756 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015757 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15758 msm_routing_get_port_mixer,
15759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015760 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15761 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015762 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15763 msm_routing_get_port_mixer,
15764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015765 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15766 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015767 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15768 msm_routing_get_port_mixer,
15769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015770 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15771 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015772 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15773 msm_routing_get_port_mixer,
15774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015775 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015777 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15778 msm_routing_get_port_mixer,
15779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015780 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15781 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015782 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15783 msm_routing_get_port_mixer,
15784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015785 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15786 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015787 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15788 msm_routing_get_port_mixer,
15789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015790 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15791 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015792 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15793 msm_routing_get_port_mixer,
15794 msm_routing_put_port_mixer),
15795};
15796
15797static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015798 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15799 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015800 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15801 msm_routing_get_port_mixer,
15802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015803 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15804 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015805 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15806 msm_routing_get_port_mixer,
15807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015808 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15809 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015810 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15811 msm_routing_get_port_mixer,
15812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015813 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15814 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015815 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15816 msm_routing_get_port_mixer,
15817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015818 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15819 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015820 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15821 msm_routing_get_port_mixer,
15822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015823 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15824 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015825 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15826 msm_routing_get_port_mixer,
15827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015828 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15829 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015830 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15831 msm_routing_get_port_mixer,
15832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015833 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15834 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015835 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15836 msm_routing_get_port_mixer,
15837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015838 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15839 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015840 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15841 msm_routing_get_port_mixer,
15842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015843 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15844 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015845 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15846 msm_routing_get_port_mixer,
15847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015848 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15849 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015850 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15851 msm_routing_get_port_mixer,
15852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015853 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15854 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015855 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15856 msm_routing_get_port_mixer,
15857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015858 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15859 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015860 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15861 msm_routing_get_port_mixer,
15862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015863 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015865 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15866 msm_routing_get_port_mixer,
15867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015868 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15869 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015870 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15871 msm_routing_get_port_mixer,
15872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015873 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15874 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015875 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15876 msm_routing_get_port_mixer,
15877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015878 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15879 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015880 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15881 msm_routing_get_port_mixer,
15882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015883 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15884 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015885 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15886 msm_routing_get_port_mixer,
15887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015888 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15889 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015890 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15891 msm_routing_get_port_mixer,
15892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015893 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015895 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15896 msm_routing_get_port_mixer,
15897 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015898};
15899
15900static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015901 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15902 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015903 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015905 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15906 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015907 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015909 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15910 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015911 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015913 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15914 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015915 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015917 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15918 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015919 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015921 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15922 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015923 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015925 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15926 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015927 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15928 msm_routing_put_port_mixer),
15929};
15930
15931static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015932 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015934 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015936 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015938 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015942 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015944 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15945 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015946 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015948 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15949 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015950 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015952 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15953 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015954 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015956 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15957 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015958 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015960 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015962 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015964 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15965 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015966 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15967 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015968};
15969
15970static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015971 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15972 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015973 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15974 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015975 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015977 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15978 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015979 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15980 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015981 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15982 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015983 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15984 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015985 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15986 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015987 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15988 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015989 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15990 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015991 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015993 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15994 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015995 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015997 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15998 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015999 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16000 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016001 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16002 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016003 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16004 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16005 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16006 msm_routing_put_listen_mixer),
16007 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16008 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16009 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16010 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016011 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16013 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16014 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016015};
16016
16017static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016018 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16019 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016020 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16021 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016022 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16023 SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016025 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16026 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016027 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16028 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016029 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16030 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016031 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16032 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016033 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16034 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016035 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16036 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016037 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16038 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016039 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16040 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016041 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16042 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016043 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016045 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16046 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016047 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16048 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016049 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16050 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016051 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16052 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16053 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16054 msm_routing_put_listen_mixer),
16055 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16056 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16057 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16058 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016059 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16060 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16061 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16062 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016063};
16064
16065static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016066 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016068 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16069 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016070 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16071 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016072 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16073 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016074 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016076 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16077 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016078 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016080 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16081 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016082 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16083 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016084 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16085 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016086 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16087 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016088 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16089 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016090 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16091 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016092 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16093 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016094 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16095 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016096 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16097 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016098 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16100 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16101 msm_routing_put_listen_mixer),
16102 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16103 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16104 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16105 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016106 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16108 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16109 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016110};
16111
16112static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016113 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016115 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16116 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016117 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16118 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016119 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16120 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016121 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16122 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016123 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16124 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016125 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16126 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016127 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16128 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016129 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16130 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016131 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16132 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016133 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16134 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016135 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16136 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016137 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16138 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016139 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16140 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016141 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16142 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016143 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16144 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016145 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16146 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16147 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16148 msm_routing_put_listen_mixer),
16149 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16150 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16151 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16152 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016153 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16154 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16155 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16156 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016157};
16158
16159static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016160 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16161 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016162 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16163 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016164 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16165 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016166 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16167 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016168 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16169 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016170 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16171 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016172 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16173 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016174 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16175 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016176 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016178 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16179 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016180 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16181 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016182 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16183 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016184 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16185 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016186 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16187 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016188 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16189 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016190 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16191 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016192 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16193 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16194 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16195 msm_routing_put_listen_mixer),
16196 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16198 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16199 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016200 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16201 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16202 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16203 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016204};
16205
16206static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016207 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16208 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016209 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16210 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016211 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16212 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016213 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16214 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016215 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16216 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016217 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16218 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016219 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16220 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016221 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16222 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016223 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16224 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016225 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16226 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016227 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16228 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016229 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16230 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016231 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16232 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016233 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16234 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016235 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16236 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016237 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16238 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016239 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16241 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16242 msm_routing_put_listen_mixer),
16243 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16244 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16245 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16246 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16249 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16250 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016251};
16252
16253static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016254 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016256 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16257 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016258 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16259 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016260 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16261 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016262 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16263 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016264 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16265 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016266 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16267 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016268 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16269 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016270 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16271 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016272 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16273 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016274 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016276 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16277 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016278 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16279 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016280 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16281 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016282 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16283 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016284 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16285 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016286 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16287 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16288 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16289 msm_routing_put_listen_mixer),
16290 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16291 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16292 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16293 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016294 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16296 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16297 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016298};
16299
16300static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016301 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16302 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016303 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16304 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016305 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16306 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016307 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16308 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016309 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16310 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016311 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16312 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016313 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16314 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016315 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16316 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016317 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16318 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016319 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16320 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016321 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16322 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016323 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16324 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016325 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016327 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16328 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016329 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016331 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16332 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016333 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16334 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16335 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16336 msm_routing_put_listen_mixer),
16337 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16339 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16340 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016341 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16342 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16343 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16344 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016345};
16346
16347static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16348 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16349 0, 1, 0, msm_routing_get_switch_mixer,
16350 msm_routing_put_switch_mixer);
16351
16352static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16353 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16354 0, 1, 0, msm_routing_get_switch_mixer,
16355 msm_routing_put_switch_mixer);
16356
16357static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16358 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16359 0, 1, 0, msm_routing_get_switch_mixer,
16360 msm_routing_put_switch_mixer);
16361
16362static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16363 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16364 0, 1, 0, msm_routing_get_switch_mixer,
16365 msm_routing_put_switch_mixer);
16366
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016367static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16368 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16369 0, 1, 0, msm_routing_get_switch_mixer,
16370 msm_routing_put_switch_mixer);
16371
16372static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016373 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16374 0, 1, 0, msm_routing_get_switch_mixer,
16375 msm_routing_put_switch_mixer);
16376
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016377static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16378 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16379 0, 1, 0, msm_routing_get_switch_mixer,
16380 msm_routing_put_switch_mixer);
16381
16382static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16383 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16384 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16385 msm_routing_put_fm_pcmrx_switch_mixer);
16386
16387static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16388 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16389 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16390 msm_routing_put_int0_mi2s_switch_mixer);
16391
16392static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16393 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16394 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16395 msm_routing_put_int4_mi2s_switch_mixer);
16396
16397static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16398 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16399 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16400 msm_routing_put_pri_mi2s_switch_mixer);
16401
16402static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16403 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16404 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16405 msm_routing_put_sec_mi2s_switch_mixer);
16406
16407static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16408 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16409 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16410 msm_routing_put_tert_mi2s_switch_mixer);
16411
16412static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16413 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16414 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16415 msm_routing_put_quat_mi2s_switch_mixer);
16416
Rohit Kumara5077932017-09-10 22:05:05 +053016417static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16418 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16419 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16420 msm_routing_put_quin_mi2s_switch_mixer);
16421
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016422static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16423 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16424 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16425 msm_routing_put_hfp_switch_mixer);
16426
16427static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16428 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16429 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16430 msm_routing_put_hfp_switch_mixer);
16431
16432static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16433 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16434 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16435 msm_routing_put_hfp_switch_mixer);
16436
16437static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16438 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16439 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16440 msm_routing_put_hfp_switch_mixer);
16441
16442static const struct snd_kcontrol_new usb_switch_mixer_controls =
16443 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16444 0, 1, 0, msm_routing_get_usb_switch_mixer,
16445 msm_routing_put_usb_switch_mixer);
16446
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016447static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16448 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16449 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16450 msm_routing_a2dp_switch_mixer_put);
16451
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016452static const struct soc_enum lsm_port_enum =
16453 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16454
16455static const char * const lsm_func_text[] = {
16456 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16457};
16458static const struct soc_enum lsm_func_enum =
16459 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16460
16461static const struct snd_kcontrol_new lsm_controls[] = {
16462 /* kcontrol of lsm_function */
16463 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16464 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16465 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16466 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16467 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16468 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16469 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16470 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16471 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16472 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16473 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16474 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16475 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16476 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16477 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16478 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16479 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16480 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016481 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16482 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016483 /* kcontrol of lsm_port */
16484 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16485 msm_routing_lsm_port_get,
16486 msm_routing_lsm_port_put),
16487 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16488 msm_routing_lsm_port_get,
16489 msm_routing_lsm_port_put),
16490 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16491 msm_routing_lsm_port_get,
16492 msm_routing_lsm_port_put),
16493 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16494 msm_routing_lsm_port_get,
16495 msm_routing_lsm_port_put),
16496 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16497 msm_routing_lsm_port_get,
16498 msm_routing_lsm_port_put),
16499 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16500 msm_routing_lsm_port_get,
16501 msm_routing_lsm_port_put),
16502 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16503 msm_routing_lsm_port_get,
16504 msm_routing_lsm_port_put),
16505 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16506 msm_routing_lsm_port_get,
16507 msm_routing_lsm_port_put),
16508};
16509
16510static const char * const aanc_slim_0_rx_text[] = {
16511 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16512 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16513};
16514
16515static const struct soc_enum aanc_slim_0_rx_enum =
16516 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16517 aanc_slim_0_rx_text);
16518
16519static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16520 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16521 msm_routing_slim_0_rx_aanc_mux_get,
16522 msm_routing_slim_0_rx_aanc_mux_put)
16523};
16524
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016525static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16526 struct snd_ctl_elem_value *ucontrol)
16527{
16528 ucontrol->value.integer.value[0] = aanc_level;
16529
16530 return 0;
16531}
16532
16533static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16534 struct snd_ctl_elem_value *ucontrol)
16535{
16536 int ret = 0;
16537
16538 mutex_lock(&routing_lock);
16539 aanc_level = ucontrol->value.integer.value[0];
16540 pr_debug("%s: value: %ld\n",
16541 __func__, ucontrol->value.integer.value[0]);
16542 ret = afe_set_aanc_noise_level(aanc_level);
16543 mutex_unlock(&routing_lock);
16544
16545 return ret;
16546}
16547
16548static const struct snd_kcontrol_new aanc_noise_level[] = {
16549 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16550 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16551};
16552
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016553static int msm_routing_get_stereo_to_custom_stereo_control(
16554 struct snd_kcontrol *kcontrol,
16555 struct snd_ctl_elem_value *ucontrol)
16556{
16557 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16558 return 0;
16559}
16560
16561static int msm_routing_put_stereo_to_custom_stereo_control(
16562 struct snd_kcontrol *kcontrol,
16563 struct snd_ctl_elem_value *ucontrol)
16564{
16565 int flag = 0, i = 0, rc = 0, idx = 0;
16566 int be_index = 0, port_id, topo_id;
16567 unsigned int session_id = 0;
16568 uint16_t op_FL_ip_FL_weight = 0;
16569 uint16_t op_FL_ip_FR_weight = 0;
16570 uint16_t op_FR_ip_FL_weight = 0;
16571 uint16_t op_FR_ip_FR_weight = 0;
16572
16573 flag = ucontrol->value.integer.value[0];
16574 pr_debug("%s E flag %d\n", __func__, flag);
16575
16576 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16577 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16578 __func__, is_custom_stereo_on, flag);
16579 return 0;
16580 }
16581 is_custom_stereo_on = flag ? true : false;
16582 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16583 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16584 port_id = msm_bedais[be_index].port_id;
16585 if (!msm_bedais[be_index].active)
16586 continue;
16587 if ((port_id != SLIMBUS_0_RX) &&
16588 (port_id != RT_PROXY_PORT_001_RX) &&
16589 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16590 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16591 continue;
16592
16593 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16594 MSM_FRONTEND_DAI_MM_SIZE) {
16595 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16596 LEGACY_PCM_MODE)
16597 goto skip_send_custom_stereo;
16598 session_id =
16599 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16600 if (is_custom_stereo_on) {
16601 op_FL_ip_FL_weight =
16602 Q14_GAIN_ZERO_POINT_FIVE;
16603 op_FL_ip_FR_weight =
16604 Q14_GAIN_ZERO_POINT_FIVE;
16605 op_FR_ip_FL_weight =
16606 Q14_GAIN_ZERO_POINT_FIVE;
16607 op_FR_ip_FR_weight =
16608 Q14_GAIN_ZERO_POINT_FIVE;
16609 } else {
16610 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16611 op_FL_ip_FR_weight = 0;
16612 op_FR_ip_FL_weight = 0;
16613 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16614 }
16615 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16616 unsigned long copp =
16617 session_copp_map[i]
16618 [SESSION_TYPE_RX][be_index];
16619 if (!test_bit(idx, &copp))
16620 goto skip_send_custom_stereo;
16621 topo_id = adm_get_topology_for_port_copp_idx(
16622 msm_bedais[be_index].port_id, idx);
16623 if (topo_id < 0)
16624 pr_debug("%s:Err:custom stereo topo %d",
16625 __func__, topo_id);
16626 pr_debug("idx %d\n", idx);
16627 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
16628 rc = msm_ds2_dap_set_custom_stereo_onoff
16629 (msm_bedais[be_index].port_id,
16630 idx, is_custom_stereo_on);
16631 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
16632 rc = dolby_dap_set_custom_stereo_onoff(
16633 msm_bedais[be_index].port_id,
16634 idx, is_custom_stereo_on);
16635 else
16636 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
16637 (msm_bedais[be_index].port_id,
16638 idx, session_id,
16639 op_FL_ip_FL_weight,
16640 op_FL_ip_FR_weight,
16641 op_FR_ip_FL_weight,
16642 op_FR_ip_FR_weight);
16643 if (rc < 0)
16644skip_send_custom_stereo:
16645 pr_err("%s: err setting custom stereo\n",
16646 __func__);
16647 }
16648
16649 }
16650 }
16651 return 0;
16652}
16653
16654static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
16655 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
16656 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
16657 msm_routing_put_stereo_to_custom_stereo_control),
16658};
16659
16660static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16661 struct snd_ctl_elem_value *ucontrol)
16662{
16663 return 0;
16664}
16665
16666static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16667 struct snd_ctl_elem_value *ucontrol)
16668{
16669 int i = 0, j;
16670 int num_app_types = ucontrol->value.integer.value[i++];
16671
16672 pr_debug("%s\n", __func__);
16673
16674 memset(app_type_cfg, 0, MAX_APP_TYPES*
16675 sizeof(struct msm_pcm_routing_app_type_data));
16676 if (num_app_types > MAX_APP_TYPES) {
16677 pr_err("%s: number of app types exceed the max supported\n",
16678 __func__);
16679 return -EINVAL;
16680 }
16681 for (j = 0; j < num_app_types; j++) {
16682 app_type_cfg[j].app_type =
16683 ucontrol->value.integer.value[i++];
16684 app_type_cfg[j].sample_rate =
16685 ucontrol->value.integer.value[i++];
16686 app_type_cfg[j].bit_width =
16687 ucontrol->value.integer.value[i++];
16688 }
16689
16690 return 0;
16691}
16692
16693static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
16694 struct snd_ctl_elem_value *ucontrol)
16695{
16696 int j, fe_id, be_id, port_type;
16697 int ret = 0;
16698 unsigned long copp;
16699 struct msm_pcm_routing_bdai_data *bedai;
16700 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16701 SESSION_TYPE_RX;
16702 int app_type = ucontrol->value.integer.value[1];
16703 int gain = (ucontrol->value.integer.value[2] +
16704 ucontrol->value.integer.value[3])/2;
16705
16706 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16707 MSM_AFE_PORT_TYPE_TX;
16708
16709 mutex_lock(&routing_lock);
16710 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16711 if (is_be_dai_extproc(be_id))
16712 continue;
16713
16714 bedai = &msm_bedais[be_id];
16715 if (afe_get_port_type(bedai->port_id) != port_type)
16716 continue;
16717
16718 if (!bedai->active)
16719 continue;
16720
16721 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16722 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16723 continue;
16724
16725 if (app_type !=
16726 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16727 continue;
16728
16729 copp = session_copp_map[fe_id][dir][be_id];
16730 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
16731 if (!test_bit(j, &copp))
16732 continue;
16733 ret |= adm_set_volume(bedai->port_id, j, gain);
16734 }
16735 }
16736 }
16737 mutex_unlock(&routing_lock);
16738 return ret ? -EINVAL : 0;
16739}
16740
16741static const struct snd_kcontrol_new app_type_cfg_controls[] = {
16742 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
16743 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
16744 msm_routing_put_app_type_cfg_control),
16745 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
16746 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
16747};
16748
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016749static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
16750 struct snd_ctl_elem_value *ucontrol)
16751{
16752 int copp_idx, fe_id, be_id, port_type;
16753 int ret = 0;
16754 unsigned long copp;
16755 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016756 u8 *packed_params = NULL;
16757 struct param_hdr_v3 param_hdr;
16758 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
16759 sizeof(uint32_t));
16760
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016761 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16762 SESSION_TYPE_RX;
16763 int app_type = ucontrol->value.integer.value[1];
16764 int module_id = ucontrol->value.integer.value[2];
16765 int instance_id = ucontrol->value.integer.value[3];
16766 int param_id = ucontrol->value.integer.value[4];
16767 int param_value = ucontrol->value.integer.value[5];
16768
16769 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16770 MSM_AFE_PORT_TYPE_TX;
16771 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
16772 __func__, app_type, module_id,
16773 instance_id, param_id, param_value);
16774
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016775 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
16776 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016777 return -ENOMEM;
16778
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016779 memset(&param_hdr, 0, sizeof(param_hdr));
16780 param_hdr.module_id = module_id;
16781 param_hdr.instance_id = instance_id;
16782 param_hdr.param_id = param_id;
16783 param_hdr.param_size = sizeof(uint32_t);
16784
16785 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016786
16787 mutex_lock(&routing_lock);
16788 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16789 if (is_be_dai_extproc(be_id))
16790 continue;
16791
16792 bedai = &msm_bedais[be_id];
16793 if (afe_get_port_type(bedai->port_id) != port_type)
16794 continue;
16795
16796 if (!bedai->active)
16797 continue;
16798
16799 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16800 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16801 continue;
16802
16803 if (app_type !=
16804 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16805 continue;
16806
16807 copp = session_copp_map[fe_id][dir][be_id];
16808 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
16809 copp_idx++) {
16810 if (!test_bit(copp_idx, &copp))
16811 continue;
16812
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016813 ret = q6common_pack_pp_params(packed_params,
16814 &param_hdr,
16815 (u8 *) &param_value,
16816 &packed_param_size);
16817 if (ret) {
16818 pr_err("%s: Failed to pack params, error %d\n",
16819 __func__, ret);
16820 goto done;
16821 }
16822
16823 ret = adm_set_pp_params(bedai->port_id,
16824 copp_idx, NULL,
16825 packed_params,
16826 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016827 if (ret) {
16828 pr_err("%s: Setting param failed with err=%d\n",
16829 __func__, ret);
16830 ret = -EINVAL;
16831 goto done;
16832 }
16833 }
16834 }
16835 }
16836done:
16837 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016838 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016839 return ret;
16840}
16841
16842static const struct snd_kcontrol_new module_cfg_controls[] = {
16843 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
16844 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
16845};
16846
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016847static int msm_routing_get_lsm_app_type_cfg_control(
16848 struct snd_kcontrol *kcontrol,
16849 struct snd_ctl_elem_value *ucontrol)
16850{
16851 return 0;
16852}
16853
16854static int msm_routing_put_lsm_app_type_cfg_control(
16855 struct snd_kcontrol *kcontrol,
16856 struct snd_ctl_elem_value *ucontrol)
16857{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016858 int shift = ((struct soc_multi_mixer_control *)
16859 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016860 int i = 0, j;
16861 int num_app_types = ucontrol->value.integer.value[i++];
16862
16863 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016864 sizeof(struct msm_pcm_routing_app_type_data));
16865
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016866 if (num_app_types > MAX_APP_TYPES) {
16867 pr_err("%s: number of app types exceed the max supported\n",
16868 __func__);
16869 return -EINVAL;
16870 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016871
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016872 for (j = 0; j < num_app_types; j++) {
16873 lsm_app_type_cfg[j].app_type =
16874 ucontrol->value.integer.value[i++];
16875 lsm_app_type_cfg[j].sample_rate =
16876 ucontrol->value.integer.value[i++];
16877 lsm_app_type_cfg[j].bit_width =
16878 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016879 /* Shift of 1 indicates this is V2 mixer control */
16880 if (shift == 1)
16881 lsm_app_type_cfg[j].num_out_channels =
16882 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016883 }
16884
16885 return 0;
16886}
16887
16888static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
16889 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
16890 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16891 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016892 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
16893 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16894 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016895};
16896
16897static int msm_routing_get_use_ds1_or_ds2_control(
16898 struct snd_kcontrol *kcontrol,
16899 struct snd_ctl_elem_value *ucontrol)
16900{
16901 ucontrol->value.integer.value[0] = is_ds2_on;
16902 return 0;
16903}
16904
16905static int msm_routing_put_use_ds1_or_ds2_control(
16906 struct snd_kcontrol *kcontrol,
16907 struct snd_ctl_elem_value *ucontrol)
16908{
16909 is_ds2_on = ucontrol->value.integer.value[0];
16910 return 0;
16911}
16912
16913static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
16914 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
16915 1, 0, msm_routing_get_use_ds1_or_ds2_control,
16916 msm_routing_put_use_ds1_or_ds2_control),
16917};
16918
16919int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
16920 struct snd_ctl_elem_value *ucontrol) {
16921 int rc = 0;
16922 int be_idx = 0;
16923 char *param_value;
16924 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016925 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
16926 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016927
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016928 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016929 if (!param_value)
16930 return -ENOMEM;
16931
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016932 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016933 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
16934 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
16935 break;
16936 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016937 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
16938 param_hdr.instance_id = INSTANCE_ID_0;
16939 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
16940 param_hdr.param_size = param_size;
16941 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
16942 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016943 if (rc) {
16944 pr_err("%s: get parameters failed:%d\n", __func__, rc);
16945 kfree(param_value);
16946 return -EINVAL;
16947 }
16948 update_param_value = (int *)param_value;
16949 ucontrol->value.integer.value[0] = update_param_value[0];
16950
16951 pr_debug("%s: FROM DSP value[0] 0x%x\n",
16952 __func__, update_param_value[0]);
16953 }
16954 kfree(param_value);
16955 return 0;
16956}
16957
16958static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
16959 struct snd_ctl_elem_value *ucontrol)
16960{
16961 voc_session_id = ucontrol->value.integer.value[0];
16962
16963 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
16964
16965 return 0;
16966}
16967
16968static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
16969 struct snd_ctl_elem_value *ucontrol)
16970{
16971 ucontrol->value.integer.value[0] = voc_session_id;
16972
16973 return 0;
16974}
16975
16976static struct snd_kcontrol_new msm_voc_session_controls[] = {
16977 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
16978 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
16979 msm_voc_session_id_put),
16980};
16981
16982static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
16983 struct snd_ctl_elem_info *uinfo)
16984{
16985 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16986 uinfo->count = sizeof(struct sound_focus_param);
16987
16988 return 0;
16989}
16990
16991static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
16992 struct snd_ctl_elem_value *ucontrol)
16993{
16994 int ret = 0;
16995 struct sound_focus_param soundFocusData;
16996
16997 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
16998 sizeof(struct sound_focus_param));
16999 ret = voc_set_sound_focus(soundFocusData);
17000 if (ret) {
17001 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17002 __func__, ret);
17003
17004 ret = -EINVAL;
17005 }
17006
17007 return ret;
17008}
17009
17010static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17011 struct snd_ctl_elem_value *ucontrol)
17012{
17013 int ret = 0;
17014 struct sound_focus_param soundFocusData;
17015
17016 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17017
17018 ret = voc_get_sound_focus(&soundFocusData);
17019 if (ret) {
17020 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17021 __func__, ret);
17022
17023 ret = -EINVAL;
17024 goto done;
17025 }
17026 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17027 sizeof(struct sound_focus_param));
17028
17029done:
17030 return ret;
17031}
17032
17033static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17034 struct snd_ctl_elem_info *uinfo)
17035{
17036 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17037 uinfo->count = sizeof(struct source_tracking_param);
17038
17039 return 0;
17040}
17041
17042static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17043 struct snd_ctl_elem_value *ucontrol)
17044{
Meng Wang92edfde2018-04-24 12:18:37 +080017045 int ret = 0;
17046 struct source_tracking_param sourceTrackingData;
17047
17048 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17049
17050 ret = voc_get_source_tracking(&sourceTrackingData);
17051 if (ret) {
17052 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17053 __func__, ret);
17054
17055 ret = -EINVAL;
17056 goto done;
17057 }
17058 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17059 sizeof(struct source_tracking_param));
17060
17061done:
17062 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017063}
17064
17065static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17066 int *copp_idx)
17067{
17068 int i, idx, be_idx;
17069 int ret = 0;
17070 unsigned long copp;
17071
17072 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17073
17074 ret = q6audio_validate_port(port_id);
17075 if (ret < 0) {
17076 pr_err("%s: port validation failed id 0x%x ret %d\n",
17077 __func__, port_id, ret);
17078
17079 ret = -EINVAL;
17080 goto done;
17081 }
17082
17083 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17084 if (msm_bedais[be_idx].port_id == port_id)
17085 break;
17086 }
17087 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17088 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17089
17090 ret = -EINVAL;
17091 goto done;
17092 }
17093
17094 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
17095 MSM_FRONTEND_DAI_MM_SIZE) {
17096 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17097 copp = session_copp_map[i]
17098 [session_type][be_idx];
17099 if (test_bit(idx, &copp))
17100 break;
17101 }
17102 if (idx >= MAX_COPPS_PER_PORT)
17103 continue;
17104 else
17105 break;
17106 }
17107 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
17108 pr_err("%s: Invalid FE, exiting\n", __func__);
17109
17110 ret = -EINVAL;
17111 goto done;
17112 }
17113 *copp_idx = idx;
17114 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17115
17116done:
17117 return ret;
17118}
17119
17120static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17121 const char *prefix, int *port_id)
17122{
17123 int ret = 0;
17124
17125 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17126
17127 /*
17128 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17129 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17130 * and compare the string with the backend name to derive the port id.
17131 */
17132 if (!strcmp(kcontrol->id.name + strlen(prefix),
17133 "SLIMBUS_0")) {
17134 *port_id = SLIMBUS_0_TX;
17135 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17136 "TERT_MI2S")) {
17137 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17138 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17139 "INT3_MI2S")) {
17140 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017141 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17142 "VA_CDC_DMA_TX_0")) {
17143 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017144 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17145 "TX_CDC_DMA_TX_3")) {
17146 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017147 } else {
17148 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17149 __func__, kcontrol->id.name);
17150
17151 ret = -EINVAL;
17152 goto done;
17153 }
17154 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17155 __func__, kcontrol->id.name, *port_id);
17156
17157done:
17158 return ret;
17159}
17160
17161static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17162 struct snd_ctl_elem_value *ucontrol)
17163{
17164 int ret = 0;
17165 struct sound_focus_param soundFocusData;
17166 int port_id, copp_idx;
17167
17168 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17169 "Sound Focus Audio Tx ", &port_id);
17170 if (ret != 0) {
17171 pr_err("%s: Error in deriving port id, err=%d\n",
17172 __func__, ret);
17173
17174 ret = -EINVAL;
17175 goto done;
17176 }
17177
17178 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17179 &copp_idx);
17180 if (ret) {
17181 pr_err("%s: Could not get copp idx for port_id=%d\n",
17182 __func__, port_id);
17183
17184 ret = -EINVAL;
17185 goto done;
17186 }
17187
17188 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17189 sizeof(struct sound_focus_param));
17190
17191 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17192 if (ret) {
17193 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17194 __func__, ret);
17195
17196 ret = -EINVAL;
17197 goto done;
17198 }
17199
17200done:
17201 return ret;
17202}
17203
17204static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17205 struct snd_ctl_elem_value *ucontrol)
17206{
17207 int ret = 0;
17208 struct sound_focus_param soundFocusData;
17209 int port_id, copp_idx;
17210
17211 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17212 "Sound Focus Audio Tx ", &port_id);
17213 if (ret) {
17214 pr_err("%s: Error in deriving port id, err=%d\n",
17215 __func__, ret);
17216
17217 ret = -EINVAL;
17218 goto done;
17219 }
17220
17221 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17222 &copp_idx);
17223 if (ret) {
17224 pr_err("%s: Could not get copp idx for port_id=%d\n",
17225 __func__, port_id);
17226
17227 ret = -EINVAL;
17228 goto done;
17229 }
17230
17231 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17232 if (ret) {
17233 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17234 __func__, ret);
17235
17236 ret = -EINVAL;
17237 goto done;
17238 }
17239
17240 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17241 sizeof(struct sound_focus_param));
17242
17243done:
17244 return ret;
17245}
17246
17247static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17248 struct snd_ctl_elem_value *ucontrol)
17249{
17250 int ret = 0;
17251 struct source_tracking_param sourceTrackingData;
17252 int port_id, copp_idx;
17253
17254 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17255 "Source Tracking Audio Tx ", &port_id);
17256 if (ret) {
17257 pr_err("%s: Error in deriving port id, err=%d\n",
17258 __func__, ret);
17259
17260 ret = -EINVAL;
17261 goto done;
17262 }
17263
17264 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17265 &copp_idx);
17266 if (ret) {
17267 pr_err("%s: Could not get copp idx for port_id=%d\n",
17268 __func__, port_id);
17269
17270 ret = -EINVAL;
17271 goto done;
17272 }
17273
17274 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17275 if (ret) {
17276 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17277 __func__, ret);
17278
17279 ret = -EINVAL;
17280 goto done;
17281 }
17282
17283 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17284 sizeof(struct source_tracking_param));
17285
17286done:
17287 return ret;
17288}
17289
17290static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17291 {
17292 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17293 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17294 .name = "Sound Focus Voice Tx SLIMBUS_0",
17295 .info = msm_sound_focus_info,
17296 .get = msm_voice_sound_focus_get,
17297 .put = msm_voice_sound_focus_put,
17298 },
17299 {
17300 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17301 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17302 .name = "Source Tracking Voice Tx SLIMBUS_0",
17303 .info = msm_source_tracking_info,
17304 .get = msm_voice_source_tracking_get,
17305 },
17306 {
17307 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17308 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17309 .name = "Sound Focus Audio Tx SLIMBUS_0",
17310 .info = msm_sound_focus_info,
17311 .get = msm_audio_sound_focus_get,
17312 .put = msm_audio_sound_focus_put,
17313 },
17314 {
17315 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17316 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17317 .name = "Source Tracking Audio Tx SLIMBUS_0",
17318 .info = msm_source_tracking_info,
17319 .get = msm_audio_source_tracking_get,
17320 },
17321 {
17322 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17323 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17324 .name = "Sound Focus Voice Tx TERT_MI2S",
17325 .info = msm_sound_focus_info,
17326 .get = msm_voice_sound_focus_get,
17327 .put = msm_voice_sound_focus_put,
17328 },
17329 {
17330 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17331 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17332 .name = "Source Tracking Voice Tx TERT_MI2S",
17333 .info = msm_source_tracking_info,
17334 .get = msm_voice_source_tracking_get,
17335 },
17336 {
17337 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17338 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17339 .name = "Sound Focus Audio Tx TERT_MI2S",
17340 .info = msm_sound_focus_info,
17341 .get = msm_audio_sound_focus_get,
17342 .put = msm_audio_sound_focus_put,
17343 },
17344 {
17345 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17346 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17347 .name = "Source Tracking Audio Tx TERT_MI2S",
17348 .info = msm_source_tracking_info,
17349 .get = msm_audio_source_tracking_get,
17350 },
17351 {
17352 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17353 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17354 .name = "Sound Focus Voice Tx INT3_MI2S",
17355 .info = msm_sound_focus_info,
17356 .get = msm_voice_sound_focus_get,
17357 .put = msm_voice_sound_focus_put,
17358 },
17359 {
17360 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17361 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17362 .name = "Source Tracking Voice Tx INT3_MI2S",
17363 .info = msm_source_tracking_info,
17364 .get = msm_voice_source_tracking_get,
17365 },
17366 {
17367 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17368 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17369 .name = "Sound Focus Audio Tx INT3_MI2S",
17370 .info = msm_sound_focus_info,
17371 .get = msm_audio_sound_focus_get,
17372 .put = msm_audio_sound_focus_put,
17373 },
17374 {
17375 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17376 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17377 .name = "Source Tracking Audio Tx INT3_MI2S",
17378 .info = msm_source_tracking_info,
17379 .get = msm_audio_source_tracking_get,
17380 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017381 {
17382 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17383 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17384 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17385 .info = msm_sound_focus_info,
17386 .get = msm_voice_sound_focus_get,
17387 .put = msm_voice_sound_focus_put,
17388 },
17389 {
17390 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17391 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17392 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17393 .info = msm_source_tracking_info,
17394 .get = msm_voice_source_tracking_get,
17395 },
17396 {
17397 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17398 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17399 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17400 .info = msm_sound_focus_info,
17401 .get = msm_audio_sound_focus_get,
17402 .put = msm_audio_sound_focus_put,
17403 },
17404 {
17405 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17407 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17408 .info = msm_source_tracking_info,
17409 .get = msm_audio_source_tracking_get,
17410 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017411 {
17412 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17413 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17414 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17415 .info = msm_sound_focus_info,
17416 .get = msm_voice_sound_focus_get,
17417 .put = msm_voice_sound_focus_put,
17418 },
17419 {
17420 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17421 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17422 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17423 .info = msm_source_tracking_info,
17424 .get = msm_voice_source_tracking_get,
17425 },
17426 {
17427 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17428 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17429 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17430 .info = msm_sound_focus_info,
17431 .get = msm_audio_sound_focus_get,
17432 .put = msm_audio_sound_focus_put,
17433 },
17434 {
17435 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17436 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17437 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17438 .info = msm_source_tracking_info,
17439 .get = msm_audio_source_tracking_get,
17440 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017441};
17442
17443static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17444 struct snd_ctl_elem_value *ucontrol)
17445{
17446 int ret = 0;
17447 int item;
17448 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17449
17450 pr_debug("%s item is %d\n", __func__,
17451 ucontrol->value.enumerated.item[0]);
17452 mutex_lock(&routing_lock);
17453 item = ucontrol->value.enumerated.item[0];
17454 if (item < e->items) {
17455 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17456 __func__, e->shift_l, e->values[item]);
17457 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17458 e->values[item] < MSM_BACKEND_DAI_MAX)
17459 /* Enable feedback TX path */
17460 ret = afe_spk_prot_feed_back_cfg(
17461 msm_bedais[e->values[item]].port_id,
17462 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17463 else {
17464 pr_debug("%s values are out of range item %d\n",
17465 __func__, e->values[item]);
17466 /* Disable feedback TX path */
17467 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17468 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17469 else
17470 ret = -EINVAL;
17471 }
17472 } else {
17473 pr_err("%s item value is out of range item\n", __func__);
17474 ret = -EINVAL;
17475 }
17476 mutex_unlock(&routing_lock);
17477 return ret;
17478}
17479
17480static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17481 struct snd_ctl_elem_value *ucontrol)
17482{
17483 int ret = 0;
17484 int item;
17485 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17486
17487 pr_debug("%s item is %d\n", __func__,
17488 ucontrol->value.enumerated.item[0]);
17489 mutex_lock(&routing_lock);
17490 item = ucontrol->value.enumerated.item[0];
17491 if (item < e->items) {
17492 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17493 __func__, e->shift_l, e->values[item]);
17494 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17495 e->values[item] < MSM_BACKEND_DAI_MAX)
17496 /* Enable feedback TX path */
17497 ret = afe_spk_prot_feed_back_cfg(
17498 msm_bedais[e->values[item]].port_id,
17499 msm_bedais[e->shift_l].port_id,
17500 1, 1, 1);
17501 else {
17502 pr_debug("%s values are out of range item %d\n",
17503 __func__, e->values[item]);
17504 /* Disable feedback TX path */
17505 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17506 ret = afe_spk_prot_feed_back_cfg(0,
17507 0, 0, 0, 0);
17508 else
17509 ret = -EINVAL;
17510 }
17511 } else {
17512 pr_err("%s item value is out of range item\n", __func__);
17513 ret = -EINVAL;
17514 }
17515 mutex_unlock(&routing_lock);
17516 return ret;
17517}
17518
17519static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17520 struct snd_ctl_elem_value *ucontrol)
17521{
17522 pr_debug("%s\n", __func__);
17523 return 0;
17524}
17525
17526static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17527 struct snd_ctl_elem_value *ucontrol)
17528{
17529 pr_debug("%s\n", __func__);
17530 ucontrol->value.enumerated.item[0] = 0;
17531 return 0;
17532}
17533
17534static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17535 "ZERO", "SLIM4_TX"
17536};
17537
17538static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17539 "ZERO", "SLIM4_TX"
17540};
17541
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017542static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17543 "ZERO", "WSA_CDC_DMA_TX_0"
17544};
17545
17546static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17547 "ZERO", "WSA_CDC_DMA_TX_0"
17548};
17549
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017550static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17551 "ZERO", "SENARY_TX"
17552};
17553
17554static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17555 "ZERO", "INT5_MI2S_TX"
17556};
17557
17558static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17559 "ZERO", "INT5_MI2S_TX"
17560};
17561
17562static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17563 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17564};
17565
17566static const int const slim0_rx_vi_fb_tx_rch_value[] = {
17567 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17568};
17569
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017570static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
17571 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17572};
17573
17574static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
17575 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17576};
17577
17578
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017579static const int const mi2s_rx_vi_fb_tx_value[] = {
17580 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
17581};
17582
17583static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
17584 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17585};
17586
17587static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
17588 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17589};
17590
17591static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
17592 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17593 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
17594 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
17595
17596static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
17597 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17598 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
17599 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
17600
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017601static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
17602 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17603 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
17604 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
17605
17606static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
17607 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17608 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
17609 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
17610
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017611static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
17612 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
17613 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
17614 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
17615
17616static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
17617 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17618 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
17619 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
17620 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
17621
17622static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
17623 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17624 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
17625 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
17626 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
17627
17628static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
17629 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
17630 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17631 spkr_prot_put_vi_lch_port);
17632
17633static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
17634 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
17635 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17636 spkr_prot_put_vi_rch_port);
17637
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017638static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
17639 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
17640 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17641 spkr_prot_put_vi_lch_port);
17642
17643static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
17644 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
17645 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17646 spkr_prot_put_vi_rch_port);
17647
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017648static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
17649 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
17650 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
17651 spkr_prot_put_vi_lch_port);
17652
17653static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
17654 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
17655 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
17656 spkr_prot_put_vi_lch_port);
17657
17658static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
17659 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
17660 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
17661 spkr_prot_put_vi_rch_port);
17662
17663static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
17664 /* Frontend AIF */
17665 /* Widget name equals to Front-End DAI name<Need confirmation>,
17666 * Stream name must contains substring of front-end dai name
17667 */
17668 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
17669 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
17670 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
17671 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
17672 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
17673 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
17674 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
17675 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
17676 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
17677 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
17678 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
17679 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
17680 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
17681 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
17682 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
17683 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
17684 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017685 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017686 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
17687 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
17688 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
17689 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
17690 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
17691 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
17692 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
17693 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
17694 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053017695 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053017696 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017697 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
17698 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
17699 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
17700 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017701 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080017702 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
17703 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017704 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
17705 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
17706 "VoiceMMode1 Playback", 0, 0, 0, 0),
17707 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
17708 "VoiceMMode1 Capture", 0, 0, 0, 0),
17709 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
17710 "VoiceMMode2 Playback", 0, 0, 0, 0),
17711 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
17712 "VoiceMMode2 Capture", 0, 0, 0, 0),
17713 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
17714 0, 0, 0, 0),
17715 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
17716 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017717 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
17718 0, 0, 0, 0),
17719 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
17720 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053017721 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
17722 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017723 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
17724 0, 0, 0, 0),
17725 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
17726 0, 0, 0, 0),
17727 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
17728 0, 0, 0, 0),
17729 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
17730 0, 0, 0, 0),
17731 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
17732 0, 0, 0, 0),
17733 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
17734 0, 0, 0, 0),
17735 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
17736 0, 0, 0, 0),
17737 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
17738 0, 0, 0, 0),
17739 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
17740 0, 0, 0, 0),
17741 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
17742 0, 0, 0, 0),
17743 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
17744 0, 0, 0, 0),
17745 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
17746 0, 0, 0, 0),
17747 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
17748 0, 0, 0, 0),
17749 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
17750 0, 0, 0, 0),
17751 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
17752 0, 0, 0, 0),
17753 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
17754 0, 0, 0, 0),
17755 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
17756 0, 0, 0, 0),
17757 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
17758 0, 0, 0, 0),
17759 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
17760 0, 0, 0, 0),
17761 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
17762 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
17763 0, 0, 0, 0),
17764 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
17765 "INT0 MI2S_RX Hostless Playback",
17766 0, 0, 0, 0),
17767 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
17768 "INT4 MI2S_RX Hostless Playback",
17769 0, 0, 0, 0),
17770 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
17771 "Primary MI2S_RX Hostless Playback",
17772 0, 0, 0, 0),
17773 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
17774 "Secondary MI2S_RX Hostless Playback",
17775 0, 0, 0, 0),
17776 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
17777 "Tertiary MI2S_RX Hostless Playback",
17778 0, 0, 0, 0),
17779 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
17780 "Quaternary MI2S_RX Hostless Playback",
17781 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017782 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
17783 "Quinary MI2S_RX Hostless Playback",
17784 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017785
17786 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
17787 0, 0, 0, 0),
17788 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
17789 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017790 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
17791 0, 0, 0, 0),
17792 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
17793 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017794 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
17795 0, 0, 0, 0),
17796 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
17797 "INT3 MI2S_TX Hostless Capture",
17798 0, 0, 0, 0),
17799 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
17800 "Tertiary MI2S_TX Hostless Capture",
17801 0, 0, 0, 0),
17802 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
17803 "Secondary MI2S_TX Hostless Capture",
17804 0, 0, 0, 0),
17805 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
17806 "Primary MI2S_TX Hostless Capture",
17807 0, 0, 0, 0),
17808 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
17809 0, 0, 0, 0),
17810 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
17811 0, 0, 0, 0),
17812 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
17813 "Quaternary MI2S_TX Hostless Capture",
17814 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017815 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
17816 "Quinary MI2S_TX Hostless Capture",
17817 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017818
17819 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
17820 "Primary TDM0 Hostless Playback",
17821 0, 0, 0, 0),
17822 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
17823 "Primary TDM0 Hostless Capture",
17824 0, 0, 0, 0),
17825 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
17826 "Primary TDM1 Hostless Playback",
17827 0, 0, 0, 0),
17828 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
17829 "Primary TDM1 Hostless Capture",
17830 0, 0, 0, 0),
17831 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
17832 "Primary TDM2 Hostless Playback",
17833 0, 0, 0, 0),
17834 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
17835 "Primary TDM2 Hostless Capture",
17836 0, 0, 0, 0),
17837 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
17838 "Primary TDM3 Hostless Playback",
17839 0, 0, 0, 0),
17840 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
17841 "Primary TDM3 Hostless Capture",
17842 0, 0, 0, 0),
17843 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
17844 "Primary TDM4 Hostless Playback",
17845 0, 0, 0, 0),
17846 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
17847 "Primary TDM4 Hostless Capture",
17848 0, 0, 0, 0),
17849 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
17850 "Primary TDM5 Hostless Playback",
17851 0, 0, 0, 0),
17852 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
17853 "Primary TDM5 Hostless Capture",
17854 0, 0, 0, 0),
17855 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
17856 "Primary TDM6 Hostless Playback",
17857 0, 0, 0, 0),
17858 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
17859 "Primary TDM6 Hostless Capture",
17860 0, 0, 0, 0),
17861 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
17862 "Primary TDM7 Hostless Playback",
17863 0, 0, 0, 0),
17864 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
17865 "Primary TDM7 Hostless Capture",
17866 0, 0, 0, 0),
17867 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
17868 "Secondary TDM0 Hostless Playback",
17869 0, 0, 0, 0),
17870 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
17871 "Secondary TDM0 Hostless Capture",
17872 0, 0, 0, 0),
17873 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
17874 "Secondary TDM1 Hostless Playback",
17875 0, 0, 0, 0),
17876 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
17877 "Secondary TDM1 Hostless Capture",
17878 0, 0, 0, 0),
17879 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
17880 "Secondary TDM2 Hostless Playback",
17881 0, 0, 0, 0),
17882 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
17883 "Secondary TDM2 Hostless Capture",
17884 0, 0, 0, 0),
17885 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
17886 "Secondary TDM3 Hostless Playback",
17887 0, 0, 0, 0),
17888 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
17889 "Secondary TDM3 Hostless Capture",
17890 0, 0, 0, 0),
17891 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
17892 "Secondary TDM4 Hostless Playback",
17893 0, 0, 0, 0),
17894 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
17895 "Secondary TDM4 Hostless Capture",
17896 0, 0, 0, 0),
17897 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
17898 "Secondary TDM5 Hostless Playback",
17899 0, 0, 0, 0),
17900 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
17901 "Secondary TDM5 Hostless Capture",
17902 0, 0, 0, 0),
17903 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
17904 "Secondary TDM6 Hostless Playback",
17905 0, 0, 0, 0),
17906 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
17907 "Secondary TDM6 Hostless Capture",
17908 0, 0, 0, 0),
17909 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
17910 "Secondary TDM7 Hostless Playback",
17911 0, 0, 0, 0),
17912 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
17913 "Secondary TDM7 Hostless Capture",
17914 0, 0, 0, 0),
17915 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
17916 "Tertiary TDM0 Hostless Playback",
17917 0, 0, 0, 0),
17918 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
17919 "Tertiary TDM0 Hostless Capture",
17920 0, 0, 0, 0),
17921 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
17922 "Tertiary TDM1 Hostless Playback",
17923 0, 0, 0, 0),
17924 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
17925 "Tertiary TDM1 Hostless Capture",
17926 0, 0, 0, 0),
17927 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
17928 "Tertiary TDM2 Hostless Playback",
17929 0, 0, 0, 0),
17930 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
17931 "Tertiary TDM2 Hostless Capture",
17932 0, 0, 0, 0),
17933 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
17934 "Tertiary TDM3 Hostless Playback",
17935 0, 0, 0, 0),
17936 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
17937 "Tertiary TDM3 Hostless Capture",
17938 0, 0, 0, 0),
17939 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
17940 "Tertiary TDM4 Hostless Playback",
17941 0, 0, 0, 0),
17942 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
17943 "Tertiary TDM4 Hostless Capture",
17944 0, 0, 0, 0),
17945 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
17946 "Tertiary TDM5 Hostless Playback",
17947 0, 0, 0, 0),
17948 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
17949 "Tertiary TDM5 Hostless Capture",
17950 0, 0, 0, 0),
17951 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
17952 "Tertiary TDM6 Hostless Playback",
17953 0, 0, 0, 0),
17954 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
17955 "Tertiary TDM6 Hostless Capture",
17956 0, 0, 0, 0),
17957 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
17958 "Tertiary TDM7 Hostless Playback",
17959 0, 0, 0, 0),
17960 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
17961 "Tertiary TDM7 Hostless Capture",
17962 0, 0, 0, 0),
17963 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
17964 "Quaternary TDM0 Hostless Playback",
17965 0, 0, 0, 0),
17966 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
17967 "Quaternary TDM0 Hostless Capture",
17968 0, 0, 0, 0),
17969 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
17970 "Quaternary TDM1 Hostless Playback",
17971 0, 0, 0, 0),
17972 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
17973 "Quaternary TDM1 Hostless Capture",
17974 0, 0, 0, 0),
17975 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
17976 "Quaternary TDM2 Hostless Playback",
17977 0, 0, 0, 0),
17978 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
17979 "Quaternary TDM2 Hostless Capture",
17980 0, 0, 0, 0),
17981 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
17982 "Quaternary TDM3 Hostless Playback",
17983 0, 0, 0, 0),
17984 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
17985 "Quaternary TDM3 Hostless Capture",
17986 0, 0, 0, 0),
17987 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
17988 "Quaternary TDM4 Hostless Playback",
17989 0, 0, 0, 0),
17990 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
17991 "Quaternary TDM4 Hostless Capture",
17992 0, 0, 0, 0),
17993 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
17994 "Quaternary TDM5 Hostless Playback",
17995 0, 0, 0, 0),
17996 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
17997 "Quaternary TDM5 Hostless Capture",
17998 0, 0, 0, 0),
17999 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18000 "Quaternary TDM6 Hostless Playback",
18001 0, 0, 0, 0),
18002 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18003 "Quaternary TDM6 Hostless Capture",
18004 0, 0, 0, 0),
18005 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18006 "Quaternary TDM7 Hostless Playback",
18007 0, 0, 0, 0),
18008 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18009 "Quaternary TDM7 Hostless Capture",
18010 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018011 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18012 "Quinary TDM0 Hostless Playback",
18013 0, 0, 0, 0),
18014 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18015 "Quinary TDM0 Hostless Capture",
18016 0, 0, 0, 0),
18017 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18018 "Quinary TDM1 Hostless Playback",
18019 0, 0, 0, 0),
18020 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18021 "Quinary TDM1 Hostless Capture",
18022 0, 0, 0, 0),
18023 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18024 "Quinary TDM2 Hostless Playback",
18025 0, 0, 0, 0),
18026 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18027 "Quinary TDM2 Hostless Capture",
18028 0, 0, 0, 0),
18029 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18030 "Quinary TDM3 Hostless Playback",
18031 0, 0, 0, 0),
18032 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18033 "Quinary TDM3 Hostless Capture",
18034 0, 0, 0, 0),
18035 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18036 "Quinary TDM4 Hostless Playback",
18037 0, 0, 0, 0),
18038 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18039 "Quinary TDM4 Hostless Capture",
18040 0, 0, 0, 0),
18041 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18042 "Quinary TDM5 Hostless Playback",
18043 0, 0, 0, 0),
18044 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18045 "Quinary TDM5 Hostless Capture",
18046 0, 0, 0, 0),
18047 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18048 "Quinary TDM6 Hostless Playback",
18049 0, 0, 0, 0),
18050 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18051 "Quinary TDM6 Hostless Capture",
18052 0, 0, 0, 0),
18053 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18054 "Quinary TDM7 Hostless Playback",
18055 0, 0, 0, 0),
18056 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18057 "Quinary TDM7 Hostless Capture",
18058 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018059
18060 /* LSM */
18061 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18062 0, 0, 0, 0),
18063 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18064 0, 0, 0, 0),
18065 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18066 0, 0, 0, 0),
18067 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18068 0, 0, 0, 0),
18069 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18070 0, 0, 0, 0),
18071 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18072 0, 0, 0, 0),
18073 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18074 0, 0, 0, 0),
18075 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18076 0, 0, 0, 0),
18077 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18078 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18079 /* Backend AIF */
18080 /* Stream name equals to backend dai link stream name */
18081 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18082 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18083 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018084 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18085 0, 0, 0, 0),
18086 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18087 0, 0, 0, 0),
18088 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18089 0, 0, 0, 0),
18090 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18091 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018092 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18093 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18094 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18095 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18096 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18097 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018098 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18099 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018100 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18101 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18102 0, 0, 0, 0),
18103 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18104 0, 0, 0, 0),
18105 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18106 0, 0, 0, 0),
18107 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18108 "Secondary MI2S Playback SD1",
18109 0, 0, 0, 0),
18110 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18111 0, 0, 0, 0),
18112 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18113 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018114 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18115 0, 0, 0, 0),
18116 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18117 0, 0, 0, 0),
18118 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18119 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018120 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18121 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018122 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18123 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018124 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18125 0, 0, 0, 0),
18126 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18127 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18128 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18129 0, 0, 0, 0),
18130 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18131 0, 0, 0, 0),
18132 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18133 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018134 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18135 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018136 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18137 0, 0, 0, 0),
18138 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18139 0, 0, 0, 0),
18140 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18141 0, 0, 0, 0),
18142 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18143 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18144 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18145 0, 0, 0, 0),
18146 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18147 0, 0, 0, 0),
18148 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18149 0, 0, 0, 0),
18150 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18151 0, 0, 0, 0),
18152 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18153 0, 0, 0, 0),
18154 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18155 0, 0, 0, 0),
18156 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18157 0, 0, 0, 0),
18158 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18159 0, 0, 0, 0),
18160 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18161 0, 0, 0, 0),
18162 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18163 0, 0, 0, 0),
18164 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18165 0, 0, 0, 0),
18166 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18167 0, 0, 0, 0),
18168 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18169 0, 0, 0, 0),
18170 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18171 0, 0, 0, 0),
18172 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18173 0, 0, 0, 0),
18174 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18175 0, 0, 0, 0),
18176 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18177 0, 0, 0, 0),
18178 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18179 0, 0, 0, 0),
18180 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18181 0, 0, 0, 0),
18182 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18183 0, 0, 0, 0),
18184 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18185 0, 0, 0, 0),
18186 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18187 0, 0, 0, 0),
18188 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18189 0, 0, 0, 0),
18190 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18191 0, 0, 0, 0),
18192 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18193 0, 0, 0, 0),
18194 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18195 0, 0, 0, 0),
18196 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18197 0, 0, 0, 0),
18198 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18199 0, 0, 0, 0),
18200 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18201 0, 0, 0, 0),
18202 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18203 0, 0, 0, 0),
18204 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18205 0, 0, 0, 0),
18206 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18207 0, 0, 0, 0),
18208 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18209 0, 0, 0, 0),
18210 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18211 0, 0, 0, 0),
18212 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18213 0, 0, 0, 0),
18214 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18215 0, 0, 0, 0),
18216 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18217 0, 0, 0, 0),
18218 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18219 0, 0, 0, 0),
18220 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18221 0, 0, 0, 0),
18222 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18223 0, 0, 0, 0),
18224 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18225 0, 0, 0, 0),
18226 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18227 0, 0, 0, 0),
18228 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18229 0, 0, 0, 0),
18230 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18231 0, 0, 0, 0),
18232 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18233 0, 0, 0, 0),
18234 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18235 0, 0, 0, 0),
18236 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18237 0, 0, 0, 0),
18238 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18239 0, 0, 0, 0),
18240 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18241 0, 0, 0, 0),
18242 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18243 0, 0, 0, 0),
18244 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18245 0, 0, 0, 0),
18246 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18247 0, 0, 0, 0),
18248 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18249 0, 0, 0, 0),
18250 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18251 0, 0, 0, 0),
18252 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18253 0, 0, 0, 0),
18254 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18255 0, 0, 0, 0),
18256 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18257 0, 0, 0, 0),
18258 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18259 0, 0, 0, 0),
18260 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18261 0, 0, 0, 0),
18262 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18263 0, 0, 0, 0),
18264 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18265 0, 0, 0, 0),
18266 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18267 0, 0, 0, 0),
18268 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18269 0, 0, 0, 0),
18270 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18271 0, 0, 0, 0),
18272 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18273 0, 0, 0, 0),
18274 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18275 0, 0, 0, 0),
18276 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18277 0, 0, 0, 0),
18278 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18279 0, 0, 0, 0),
18280 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18281 0, 0, 0, 0),
18282 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18283 0, 0, 0, 0),
18284 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18285 0, 0, 0, 0),
18286 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18287 0, 0, 0, 0),
18288 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18289 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018290 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18291 0, 0, 0, 0),
18292 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18293 0, 0, 0, 0),
18294 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18295 0, 0, 0, 0),
18296 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18297 0, 0, 0, 0),
18298 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18299 0, 0, 0, 0),
18300 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18301 0, 0, 0, 0),
18302 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18303 0, 0, 0, 0),
18304 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18305 0, 0, 0, 0),
18306 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18307 0, 0, 0, 0),
18308 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18309 0, 0, 0, 0),
18310 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18311 0, 0, 0, 0),
18312 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18313 0, 0, 0, 0),
18314 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18315 0, 0, 0, 0),
18316 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18317 0, 0, 0, 0),
18318 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18319 0, 0, 0, 0),
18320 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18321 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018322 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18323 0, 0, 0, 0),
18324 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18325 0, 0, 0, 0),
18326 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18327 0, 0, 0, 0),
18328 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18329 0, 0, 0, 0),
18330 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18331 0, 0, 0, 0),
18332 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18333 0, 0, 0, 0),
18334 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18335 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018336 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18337 0, 0, 0, 0),
18338 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18339 0, 0, 0, 0),
18340 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18341 0, 0, 0, 0),
18342 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18343 0, 0, 0, 0),
18344 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18345 0, 0, 0, 0),
18346 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18347 0, 0, 0, 0),
18348 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18349 0, 0, 0, 0),
18350 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18351 0, 0, 0, 0),
18352 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18353 0, 0, 0, 0),
18354 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18355 0, 0, 0, 0),
18356 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18357 0, 0, 0, 0),
18358 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18359 0, 0, 0, 0),
18360 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18361 0, 0, 0, 0),
18362 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18363 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018364 /* incall */
18365 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18366 0, 0, 0, 0),
18367 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18368 0, 0, 0, 0),
18369 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18370 0, 0, 0, 0),
18371 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18372 0, 0, 0, 0),
18373 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18374 0, 0, 0, 0),
18375 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18376 0, 0, 0, 0),
18377 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18378 0, 0, 0, 0),
18379 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18380 0, 0, 0, 0),
18381 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18382
18383 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18384 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18385 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18386 0, 0, 0, 0),
18387 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18388 0, 0, 0, 0),
18389 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18390 0, 0, 0, 0),
18391 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18392 0, 0, 0, 0),
18393 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18394 0, 0, 0, 0),
18395 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18396 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018397 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18398 0, 0, 0, 0),
18399 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18400 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018401 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18402 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18403 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18404 0, 0, 0, 0),
18405 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18406 0, 0, 0, 0),
18407 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18408 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18409 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18410 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18411 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18412 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18413 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18414 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18415 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18416 /* In- call recording */
18417 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18418 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
18419
18420 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18421 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18422
18423 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18424 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
18425 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18426 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18427
18428 /* Switch Definitions */
18429 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18430 &slim_fm_switch_mixer_controls),
18431 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18432 &slim1_fm_switch_mixer_controls),
18433 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18434 &slim3_fm_switch_mixer_controls),
18435 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18436 &slim4_fm_switch_mixer_controls),
18437 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18438 &slim6_fm_switch_mixer_controls),
18439 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18440 &pcm_rx_switch_mixer_controls),
18441 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18442 &int0_mi2s_rx_switch_mixer_controls),
18443 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18444 &int4_mi2s_rx_switch_mixer_controls),
18445 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18446 &pri_mi2s_rx_switch_mixer_controls),
18447 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18448 &sec_mi2s_rx_switch_mixer_controls),
18449 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18450 &tert_mi2s_rx_switch_mixer_controls),
18451 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18452 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018453 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18454 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018455 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18456 &hfp_pri_aux_switch_mixer_controls),
18457 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18458 &hfp_aux_switch_mixer_controls),
18459 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18460 &hfp_int_switch_mixer_controls),
18461 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18462 &hfp_slim7_switch_mixer_controls),
18463 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18464 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018465 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18466 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018467 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018468 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018469 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018470 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018471
18472 /* Mixer definitions */
18473 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18474 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18475 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18476 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18477 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18478 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18479 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18480 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18481 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18482 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18483 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18484 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
18485 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18486 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18487 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18488 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018489 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18490 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018491 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18492 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18493 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18494 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018495 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18496 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18497 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18498 quaternary_mi2s_rx_mixer_controls,
18499 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18500 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18501 tertiary_mi2s_rx_mixer_controls,
18502 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18503 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18504 secondary_mi2s_rx_mixer_controls,
18505 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18506 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18507 secondary_mi2s_rx2_mixer_controls,
18508 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18509 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18510 primary_mi2s_rx_mixer_controls,
18511 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18512 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18513 int0_mi2s_rx_mixer_controls,
18514 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18515 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18516 int4_mi2s_rx_mixer_controls,
18517 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18518 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18519 quinary_mi2s_rx_mixer_controls,
18520 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18521 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18522 pri_tdm_rx_0_mixer_controls,
18523 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18524 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18525 pri_tdm_rx_1_mixer_controls,
18526 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18527 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18528 pri_tdm_rx_2_mixer_controls,
18529 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18530 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18531 pri_tdm_rx_3_mixer_controls,
18532 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18533 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18534 pri_tdm_tx_0_mixer_controls,
18535 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18536 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18537 sec_tdm_rx_0_mixer_controls,
18538 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18539 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18540 sec_tdm_rx_1_mixer_controls,
18541 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18542 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18543 sec_tdm_rx_2_mixer_controls,
18544 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18545 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18546 sec_tdm_rx_3_mixer_controls,
18547 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18548 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18549 sec_tdm_tx_0_mixer_controls,
18550 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18551 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18552 tert_tdm_rx_0_mixer_controls,
18553 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18554 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18555 tert_tdm_tx_0_mixer_controls,
18556 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18557 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18558 tert_tdm_rx_1_mixer_controls,
18559 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
18560 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18561 tert_tdm_rx_2_mixer_controls,
18562 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
18563 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18564 tert_tdm_rx_3_mixer_controls,
18565 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
18566 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18567 tert_tdm_rx_4_mixer_controls,
18568 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
18569 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18570 quat_tdm_rx_0_mixer_controls,
18571 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
18572 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18573 quat_tdm_tx_0_mixer_controls,
18574 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
18575 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18576 quat_tdm_rx_1_mixer_controls,
18577 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
18578 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18579 quat_tdm_rx_2_mixer_controls,
18580 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
18581 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18582 quat_tdm_rx_3_mixer_controls,
18583 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018584 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18585 quin_tdm_rx_0_mixer_controls,
18586 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
18587 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18588 quin_tdm_tx_0_mixer_controls,
18589 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
18590 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18591 quin_tdm_rx_1_mixer_controls,
18592 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
18593 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18594 quin_tdm_rx_2_mixer_controls,
18595 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
18596 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18597 quin_tdm_rx_3_mixer_controls,
18598 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018599 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18600 wsa_cdc_dma_rx_0_mixer_controls,
18601 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
18602 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18603 wsa_cdc_dma_rx_1_mixer_controls,
18604 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018605 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18606 rx_cdc_dma_rx_0_mixer_controls,
18607 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
18608 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18609 rx_cdc_dma_rx_1_mixer_controls,
18610 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
18611 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18612 rx_cdc_dma_rx_2_mixer_controls,
18613 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
18614 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18615 rx_cdc_dma_rx_3_mixer_controls,
18616 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
18617 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18618 rx_cdc_dma_rx_4_mixer_controls,
18619 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
18620 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
18621 rx_cdc_dma_rx_5_mixer_controls,
18622 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
18623 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
18624 rx_cdc_dma_rx_6_mixer_controls,
18625 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
18626 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
18627 rx_cdc_dma_rx_7_mixer_controls,
18628 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018629 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
18630 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
18631 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
18632 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
18633 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
18634 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
18635 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
18636 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
18637 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
18638 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
18639 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
18640 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
18641 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
18642 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
18643 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
18644 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018645 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
18646 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018647 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
18648 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018649 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
18650 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
18651 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
18652 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
18653 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
18654 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
18655 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
18656 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018657 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
18658 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018659 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
18660 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
18661 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
18662 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018663 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18664 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
18665 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18666 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
18667 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18668 tert_auxpcm_rx_mixer_controls,
18669 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
18670 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18671 quat_auxpcm_rx_mixer_controls,
18672 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018673 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18674 quin_auxpcm_rx_mixer_controls,
18675 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018676 /* incall */
18677 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
18678 incall_music_delivery_mixer_controls,
18679 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
18680 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18681 incall_music2_delivery_mixer_controls,
18682 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
18683 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18684 slimbus_4_rx_mixer_controls,
18685 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
18686 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18687 slimbus_6_rx_mixer_controls,
18688 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
18689 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18690 usb_audio_rx_mixer_controls,
18691 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
18692 /* Voice Mixer */
18693 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
18694 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
18695 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
18696 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
18697 SND_SOC_NOPM, 0, 0,
18698 sec_i2s_rx_voice_mixer_controls,
18699 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
18700 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
18701 SND_SOC_NOPM, 0, 0,
18702 sec_mi2s_rx_voice_mixer_controls,
18703 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
18704 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
18705 SND_SOC_NOPM, 0, 0,
18706 slimbus_rx_voice_mixer_controls,
18707 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
18708 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
18709 SND_SOC_NOPM, 0, 0,
18710 bt_sco_rx_voice_mixer_controls,
18711 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
18712 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
18713 SND_SOC_NOPM, 0, 0,
18714 afe_pcm_rx_voice_mixer_controls,
18715 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
18716 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
18717 SND_SOC_NOPM, 0, 0,
18718 aux_pcm_rx_voice_mixer_controls,
18719 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
18720 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
18721 SND_SOC_NOPM, 0, 0,
18722 sec_aux_pcm_rx_voice_mixer_controls,
18723 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
18724 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
18725 SND_SOC_NOPM, 0, 0,
18726 tert_aux_pcm_rx_voice_mixer_controls,
18727 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
18728 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
18729 SND_SOC_NOPM, 0, 0,
18730 quat_aux_pcm_rx_voice_mixer_controls,
18731 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018732 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
18733 SND_SOC_NOPM, 0, 0,
18734 quin_aux_pcm_rx_voice_mixer_controls,
18735 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018736 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
18737 SND_SOC_NOPM, 0, 0,
18738 hdmi_rx_voice_mixer_controls,
18739 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
18740 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
18741 SND_SOC_NOPM, 0, 0,
18742 mi2s_rx_voice_mixer_controls,
18743 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
18744 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
18745 SND_SOC_NOPM, 0, 0,
18746 pri_mi2s_rx_voice_mixer_controls,
18747 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
18748 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
18749 SND_SOC_NOPM, 0, 0,
18750 int0_mi2s_rx_voice_mixer_controls,
18751 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
18752 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
18753 SND_SOC_NOPM, 0, 0,
18754 int4_mi2s_rx_voice_mixer_controls,
18755 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
18756 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
18757 SND_SOC_NOPM, 0, 0,
18758 tert_mi2s_rx_voice_mixer_controls,
18759 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
18760 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
18761 SND_SOC_NOPM, 0, 0,
18762 quat_mi2s_rx_voice_mixer_controls,
18763 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
18764 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
18765 SND_SOC_NOPM, 0, 0,
18766 quin_mi2s_rx_voice_mixer_controls,
18767 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
18768 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
18769 SND_SOC_NOPM, 0, 0,
18770 quat_tdm_rx_2_voice_mixer_controls,
18771 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018772 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
18773 SND_SOC_NOPM, 0, 0,
18774 wsa_cdc_dma_rx_0_voice_mixer_controls,
18775 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
18776 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
18777 SND_SOC_NOPM, 0, 0,
18778 rx_cdc_dma_rx_0_voice_mixer_controls,
18779 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018780 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
18781 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
18782 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018783 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
18784 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
18785 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
18786 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
18787 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
18788 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
18789 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18790 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
18791 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18792 int_bt_a2dp_rx_mixer_controls,
18793 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
18794 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18795 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
18796 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18797 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
18798 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18799 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
18800 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18801 tx_voice2_stub_mixer_controls,
18802 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
18803 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18804 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
18805 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
18806 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
18807 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
18808 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
18809 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18810 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
18811 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
18812 SND_SOC_NOPM, 0, 0,
18813 slimbus_6_rx_voice_mixer_controls,
18814 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
18815 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18816 slimbus_7_rx_voice_mixer_controls,
18817 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
18818 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18819 slimbus_8_rx_voice_mixer_controls,
18820 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
18821 /* port mixer */
18822 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
18823 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
18824 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
18825 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
18826 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
18827 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
18828 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
18829 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
18830 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
18831 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
18832 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
18833 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
18834 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
18835 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
18836 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018837 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
18838 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
18839 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018840 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18841 sbus_1_rx_port_mixer_controls,
18842 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
18843 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18844 bt_sco_rx_port_mixer_controls,
18845 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
18846 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
18847 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
18848 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
18849 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
18850 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
18851 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
18852 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
18853 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
18854 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070018855 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070018856 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
18857 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018858 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
18859 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
18860 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
18861 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
18862 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
18863 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
18864 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
18865 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
18866 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
18867 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18868 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
18869 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18870 primary_mi2s_rx_port_mixer_controls,
18871 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
18872 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18873 sec_mi2s_rx_port_mixer_controls,
18874 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
18875 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18876 tert_mi2s_rx_port_mixer_controls,
18877 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
18878 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18879 quat_mi2s_rx_port_mixer_controls,
18880 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018881 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18882 quin_mi2s_rx_port_mixer_controls,
18883 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018884 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18885 pri_tdm_rx_0_port_mixer_controls,
18886 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
18887 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18888 pri_tdm_rx_1_port_mixer_controls,
18889 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
18890 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18891 pri_tdm_rx_2_port_mixer_controls,
18892 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
18893 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18894 pri_tdm_rx_3_port_mixer_controls,
18895 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
18896 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18897 sec_tdm_rx_0_port_mixer_controls,
18898 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
18899 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18900 sec_tdm_rx_1_port_mixer_controls,
18901 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
18902 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18903 sec_tdm_rx_2_port_mixer_controls,
18904 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
18905 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18906 sec_tdm_rx_3_port_mixer_controls,
18907 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
18908 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18909 tert_tdm_rx_0_port_mixer_controls,
18910 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
18911 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18912 tert_tdm_rx_1_port_mixer_controls,
18913 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
18914 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18915 tert_tdm_rx_2_port_mixer_controls,
18916 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
18917 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18918 tert_tdm_rx_3_port_mixer_controls,
18919 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
18920 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18921 quat_tdm_rx_0_port_mixer_controls,
18922 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
18923 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18924 quat_tdm_rx_1_port_mixer_controls,
18925 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
18926 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18927 quat_tdm_rx_2_port_mixer_controls,
18928 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
18929 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18930 quat_tdm_rx_3_port_mixer_controls,
18931 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018932 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18933 quin_tdm_rx_0_port_mixer_controls,
18934 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
18935 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18936 quin_tdm_rx_1_port_mixer_controls,
18937 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
18938 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18939 quin_tdm_rx_2_port_mixer_controls,
18940 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
18941 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18942 quin_tdm_rx_3_port_mixer_controls,
18943 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018944 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18945 int0_mi2s_rx_port_mixer_controls,
18946 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
18947 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18948 int4_mi2s_rx_port_mixer_controls,
18949 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018950 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18951 wsa_cdc_dma_rx_0_port_mixer_controls,
18952 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
18953 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18954 rx_cdc_dma_rx_0_port_mixer_controls,
18955 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018956 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
18957 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
18958 ARRAY_SIZE(tx_qchat_mixer_controls)),
18959 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
18960 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
18961 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
18962 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
18963 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
18964 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080018965 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
18966 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
18967 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018968 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
18969 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
18970 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018971 /* lsm mixer definitions */
18972 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
18973 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
18974 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
18975 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
18976 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
18977 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
18978 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
18979 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
18980 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
18981 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
18982 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
18983 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
18984 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
18985 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
18986 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
18987 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
18988 /* Virtual Pins to force backends ON atm */
18989 SND_SOC_DAPM_OUTPUT("BE_OUT"),
18990 SND_SOC_DAPM_INPUT("BE_IN"),
18991
18992 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18993 &slim0_rx_vi_fb_lch_mux),
18994 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18995 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018996 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18997 &wsa_rx_0_vi_fb_lch_mux),
18998 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18999 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019000 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19001 &mi2s_rx_vi_fb_mux),
19002 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19003 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19004 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19005 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19006
19007 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19008 &voc_ext_ec_mux),
19009 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19010 &ext_ec_ref_mux_ul1),
19011 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19012 &ext_ec_ref_mux_ul2),
19013 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19014 &ext_ec_ref_mux_ul3),
19015 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19016 &ext_ec_ref_mux_ul4),
19017 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19018 &ext_ec_ref_mux_ul5),
19019 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19020 &ext_ec_ref_mux_ul6),
19021 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19022 &ext_ec_ref_mux_ul8),
19023 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19024 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019025 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19026 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019027 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19028 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019029 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19030 &ext_ec_ref_mux_ul17),
19031 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19032 &ext_ec_ref_mux_ul18),
19033 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19034 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019035 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19036 &ext_ec_ref_mux_ul28),
19037 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19038 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019039};
19040
19041static const struct snd_soc_dapm_route intercon[] = {
19042 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19043 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19044 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19045 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19046 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19047 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19048 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19049 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19050 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19051 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19052 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19053 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19054 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19055 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19056 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19057 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19058 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19059
19060 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19061 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19062 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19063 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19064 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19065 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19066 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19067 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19068 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19069 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19070 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19071 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19072 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19073 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19074 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19075 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19076 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19077
19078 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19079 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19080 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19081 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19082 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19083 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19084 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19085 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19086 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19087 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19088 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19089 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19090 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19091 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19092 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19093 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19094 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19095
19096 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19097 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19098 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19099 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19100 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19101 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19102 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19103 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19104 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19105 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19106 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19107 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19108 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19109 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19110 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19111 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19112 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19113
19114 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19115 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19116 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19117 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19118 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19119 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19120 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19121 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19122 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19123 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19124 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19125 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19126 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19127 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19128 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19129 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19130 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19131
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019132 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19133 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19134 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19135 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19136 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19137 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19138 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19139 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19140 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19141 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19142 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19143 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19144 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19145 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19146 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19147 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19148 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19149
19150 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19151 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19152 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19153 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19154 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19155 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19156 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19157 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19158 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19159 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19160 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19161 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19162 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19163 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19164 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19165 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19166 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19167
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019168 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19169 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19170 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19171 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19172 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19173 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19174 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19175 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19176 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19177 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19178 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19179 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19180 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19181 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19182 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19183 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19184 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19185
19186 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19187 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19188 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19189 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19190 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19191 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19192 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19193 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19194 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19195 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19196 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19197 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19198 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19199 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19200 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19201 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19202 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19203
19204 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19205 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19206 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19207 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19208 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19209 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19210 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19211 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19212 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19213 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19214 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19215 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19216 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19217 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19218 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19219 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19220 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19221
19222 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19223 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19224 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19225 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19226 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19227 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19228 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19229 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19230 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19231 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19232 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19233 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19234 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19235 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19236 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19237 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19238 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19239
19240 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19241 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19242 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19243 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19244 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19245 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19246 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19247 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19248 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19249 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19250 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19251 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19252 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19253 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19254 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19255 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
19256 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19257
19258 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19259 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19260 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19261 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19262 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19263 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19264 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19265 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19266 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19267 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19268 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19269 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19270 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19271 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19272 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19273 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
19274 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19275
19276 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19277 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19278 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19279 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19280 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19281 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19282 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19283 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19284 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19285 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19286 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19287 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19288 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19289 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19290 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19291 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
19292 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19293
19294 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19295 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19296 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19297 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19298 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19299 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19300 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19301 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19302 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19303 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19304 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19305 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19306 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19307 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19308 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19309 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
19310 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19311
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019312 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19313 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19314 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19315 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19316 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19317 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19318 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19319 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19320 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19321 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19322 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19323 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19324 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19325 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19326 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19327 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
19328 {"HDMI", NULL, "HDMI Mixer"},
19329
19330 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19331 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19332 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19333 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19334 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19335 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19336 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19337 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19338 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19339 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19340 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19341 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19342 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19343 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19344 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19345 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
19346 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19347
Karthikeyan Mani57550082018-05-03 18:43:58 -070019348 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19349 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19350 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19351 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19352 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19353 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19354 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19355 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19356 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19357 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19358 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19359 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19360 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19361 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19362 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19363 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
19364 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19365
Ralf Herzc8701f72018-06-20 11:37:35 +020019366 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19367 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19368 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19369 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19370 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19371 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19372 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19373 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19374 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19375 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19376 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19377 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19378 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19379 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19380 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19381 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19382 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19383
19384 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19385 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19386 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19387 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19388 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19389 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19390 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19391 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19392 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19393 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19394 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19395 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19396 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19397 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19398 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19399 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19400 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019401
19402 /* incall */
19403 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19404 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19405 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19406 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19407 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19408 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19409 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19410 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19411 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19412 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19413 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19414 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19415 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19416 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19417 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19418
19419 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19420 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19421 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19422 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19423 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19424 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19425 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19426 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19427 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19428 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19429 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19430 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19431 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19432 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19433 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19434 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19435 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19436
19437 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19438 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19439 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19440 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19441 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19442 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19443 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19444 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19445 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19446 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19447 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19448 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19449 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19450 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19451 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19452 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19453 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19454
19455 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19456 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19457 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19458 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19459 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19460 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19461 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19462 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19463 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19464 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19465 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19466 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19467 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19468 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19469 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19470 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19471 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19472
19473 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19474 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19475 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19476 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19477 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19478 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19479 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19480 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19481 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19482 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19483 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19484 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19485 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19486 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19487 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19488 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019489 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19490 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019491 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19492 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19493 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19494 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19495 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19496 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019497 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19498 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019499 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019500 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019501 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19502 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19503 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19504 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19505 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19506 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019507 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019508 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19509 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19510 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019511 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19512 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19513 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019514 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019515 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019516 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19517 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019518 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019519 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
19520 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
19521
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019522 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19523 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19524 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19525 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19526 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19527 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19528 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19529 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19530 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19531 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19532 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19533 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19534 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19535 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19536 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19537 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19538 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
19539
19540 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19541 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19542 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19543 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19544 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19545 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19546 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19547 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19548 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19549 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19550 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19551 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19552 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19553 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19554 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19555 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
19556
19557 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19558 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19559 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19560 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19561 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19562 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19563 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19564 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19565 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19566 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19567 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19568 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19569 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19570 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19571 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
19572
19573 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19574 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19575 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19576 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19577 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19578 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19579 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19580 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19581 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19582 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19583 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19584 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19585 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19586 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19587 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
19588
19589 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19590 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
19591
19592 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19593 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19594
19595 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19596 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19597 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19598 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19599 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19600 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19601 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19602 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19603 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19604 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19605 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19606 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19607 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19608 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19609 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19610 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
19611
19612 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19613 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19614 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19615 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19616 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19617 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19618 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19619 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19620 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19621 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19622 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19623 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19624 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19625 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19626 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19627 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
19628
19629 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19630 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19631 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19632 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19633 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19634 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19635 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19636 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19637 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19638 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19639 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19640 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19641 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19642 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19643 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19644 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
19645
19646 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19647 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19648 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19649 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19650 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19651 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19652 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19653 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19654 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19655 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19656 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19657 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19658 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19659 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19660 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19661 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19662 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19663 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
19664
19665 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19666 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19667 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19668 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19669 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19670 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19671 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19672 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19673 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19674 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19675 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19676 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19677 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19678 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19679 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19680 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019681 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019682 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
19683
19684 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19685 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19686 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19687 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19688 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19689 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19690 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19691 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19692 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19693 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19694 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19695 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19696 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19697 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19698 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19699 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019700 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019701 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
19702
19703 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19704 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19705 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19706 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19707 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19708 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19709 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19710 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19711 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19712 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19713 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19714 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19715 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19716 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19717 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19718 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019719 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019720 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
19721
19722 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19723 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19724 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19725 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19726 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19727 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19728 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19729 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19730 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19731 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19732 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19733 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19734 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19735 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19736 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19737 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019738 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019739 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
19740
19741 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19742 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19743 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19744 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19745 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19746 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19747 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19748 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19749 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19750 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19751 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19752 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19753 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19754 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19755 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19756 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19757 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
19758
19759 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19760 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19761 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19762 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19763 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19764 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19765 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19766 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19767 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19768 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19769 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19770 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19771 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19772 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19773 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19774 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019775 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019776 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
19777
19778 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19779 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19780 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19781 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19782 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19783 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19784 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19785 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19786 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19787 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19788 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19789 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19790 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19791 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19792 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19793 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019794 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019795 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
19796
19797 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19798 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19799 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19800 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19801 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19802 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19803 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19804 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19805 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19806 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19807 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19808 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19809 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19810 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19811 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19812 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019813 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019814 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
19815
19816 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19817 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19818 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19819 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19820 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19821 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19822 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19823 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19824 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19825 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19826 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19827 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19828 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19829 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19830 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19831 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019832 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019833 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
19834
19835 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19836 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19837 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19838 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19839 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19840 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19841 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19842 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19843 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19844 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19845 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19846 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19847 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19848 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19849 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19850 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19851 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
19852
19853 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19854 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19855 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19856 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19857 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19858 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19859 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19860 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19861 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19862 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19863 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19864 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19865 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19866 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19867 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19868 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019869 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019870 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
19871
19872 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19873 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19874 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19875 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19876 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19877 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19878 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19879 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19880 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19881 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19882 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19883 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19884 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19885 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19886 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19887 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19888 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
19889
19890 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19891 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19892 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19893 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19894 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19895 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19896 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19897 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19898 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19899 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19900 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19901 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19902 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19903 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19904 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19905 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019906 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019907 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
19908
19909 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19910 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19911 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19912 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19913 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19914 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19915 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19916 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19917 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19918 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19919 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19920 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19921 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19922 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19923 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19924 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019925 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019926 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
19927
19928 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19929 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19930 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19931 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19932 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19933 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19934 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19935 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19936 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19937 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19938 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19939 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19940 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19941 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19942 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19943 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019944 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019945 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
19946
19947 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19948 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19949 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19950 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19951 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19952 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19953 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19954 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19955 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19956 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19957 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19958 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19959 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19960 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19961 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19962 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019963 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019964 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
19965
19966 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19967 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19968 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19969 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19970 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19971 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19972 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19973 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19974 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19975 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19976 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19977 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19978 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19979 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19980 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19981 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19982 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019983 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019984 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
19985
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019986 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19987 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19988 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19989 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19990 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19991 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19992 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19993 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19994 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19995 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19996 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19997 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19998 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19999 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20000 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20001 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20002 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20003
20004 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20005 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20006 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20007 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20008 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20009 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20010 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20011 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20012 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20013 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20014 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20015 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20016 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20017 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20018 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20019 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20020 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020021 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020022 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20023
20024 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20025 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20026 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20027 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20028 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20029 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20030 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20031 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20032 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20033 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20034 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20035 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20036 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20037 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20038 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20039 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20040 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020041 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020042 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20043
20044 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20045 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20046 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20047 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20048 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20049 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20050 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20051 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20052 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20053 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20054 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20055 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20056 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20057 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20058 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20059 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20060 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020061 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020062 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20063
Rohit Kumara5077932017-09-10 22:05:05 +053020064 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20065 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20066 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20067 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20068 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20069 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20070 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20071 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20072 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20073 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20074 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20075 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20076 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20077 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20078 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20079 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20080 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020081 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020082 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20083
20084 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20085 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20086 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20087 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20088 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20089 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20090 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20091 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20092 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20093 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20094 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20095 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20096 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20097 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20098 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20099 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20100 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20101
20102 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20103 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20104 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20105 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20106 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20107 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20108 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20109 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20110 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20111 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20112 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20113 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20114 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20115 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20116 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20117 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20118 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020119 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020120 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20121
20122 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20123 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20124 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20125 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20126 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20127 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20128 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20129 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20130 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20131 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20132 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20133 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20134 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20135 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20136 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20137 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20138 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020139 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020140 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20141
20142 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20143 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20144 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20145 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20146 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20147 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20148 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20149 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20150 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20151 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20152 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20153 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20154 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20155 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20156 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20157 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20158 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020159 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020160 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20161
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020162 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20163 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20164 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20165 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20166 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020167 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020168 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020169 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20170 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20171 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20172 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20173 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20174 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20175 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20176 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20177 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20178 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20179 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20180 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20181 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20182 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20183 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020184 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020185 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20186 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20187 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020188 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020189 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20190 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020191 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20192 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20193 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020194 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020195 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20196 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20197 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020198 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020199 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020200 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20201 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20202 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020203 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20204 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20205 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20206 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20207 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20208 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20209 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20210 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20211 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20212 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20213 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020214 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020215 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20216 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20217 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020218 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020219 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020220 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20221 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20222 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020223 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020224 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020225 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20226 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20227 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20228 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20229 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020230 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20231 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20232 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20233 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020234 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020235
20236 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20237 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20238 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20239 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20240 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20241 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20242 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20243 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20244 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20245 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20246 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20247 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20248 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20249 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20250 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20251 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020252 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20253 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20254 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20255 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020256 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20257 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20258 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20259 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20260 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020261 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20262 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20263 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20264 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20265 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20266 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020267 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20268 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020269
20270 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20271 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20272 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20273 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20274 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20275 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20276 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20277 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20278 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20279 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20280 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20281 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20282 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20283 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20284 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20285 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020286 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20287 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20288 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20289 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020290 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20291 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20292 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20293 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20294 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020295 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20296 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20297 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20298 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20299 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20300 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020301 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20302 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020303
20304 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20305 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20306 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20307 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20308 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20309 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20310 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20311 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20312 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20313 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20314 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20315 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20316 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20317 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20318 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20319 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020320 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20321 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20322 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20323 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020324 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20325 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20326 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20327 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20328 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020329 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20330 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20331 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20332 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20333 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20334 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020335 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20336 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020337
20338 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20339 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20340 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20341 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20342 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20343 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20344 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20345 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20346 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20347 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20348 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20349 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20350 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20351 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20352 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20353 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020354 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20355 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20356 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20357 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020358 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20359 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20360 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20361 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20362 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020363 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20364 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20365 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20366 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20367 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20368 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020369 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20370 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020371
20372 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20373 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20374 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20375 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20376 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20377 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20378 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20379 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20380 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20381 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20382 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20383 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20384 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20385 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20386 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20387 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020388 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20389 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20390 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20391 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020392 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20393 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20394 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20395 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20396 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020397 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20398 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20399 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20400 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20401 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20402 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020403 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20404 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020405
20406 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20407 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20408 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20409 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20410 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20411 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20412 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20413 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20414 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20415 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20416 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20417 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20418 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20419 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20420 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20421 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020422 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20423 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20424 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20425 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020426 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20427 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20428 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20429 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20430 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020431 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20432 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20433 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20434 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20435 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20436 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020437 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20438 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020439
20440 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20441 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20442 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20443 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20444 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20445 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20446 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20447 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20448 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20449 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20450 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20451 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20452 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20453 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20454 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20455 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020456 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20457 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20458 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20459 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020460 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20461 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20462 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20463 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20464 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020465 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20466 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20467 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20468 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20469 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20470 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020471 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20472 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020473
20474 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20475 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20476 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20477 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20478 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20479 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20480 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20481 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020482 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20483 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20484 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20485 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020486 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20487 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20488 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20489 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20490 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020491 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20492 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20493 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20494 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20495 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20496 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020497 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20498 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020499
Laxminath Kasam38070be2017-08-17 18:21:59 +053020500 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20501 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20502 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20503 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20504 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20505 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20506 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20507 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020508 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20509 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20510 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20511 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20512 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20513 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20514
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020515 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20516 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20517 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20518 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020519 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020520 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20521 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20522 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20523 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20524 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20525 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20526 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20527 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20528 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20529 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20530 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20531 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20532 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20533 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20534 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20535 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020536 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20537 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20538 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20539 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020540 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20541 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20542 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20543 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20544 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020545 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20546 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20547 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20548 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20549 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20550 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020551 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20552 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020553
Derek Chen07c6d1c2018-07-05 10:39:25 -070020554 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20555 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20556 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20557 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20558 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20559 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20560 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20561 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20562 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20563 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20564 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20565 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20566 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20567 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20568 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20569 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20570 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20571 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20572 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20573 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20574 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20575 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053020576 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20577 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20578 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20579 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20580 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20581 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20582 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20583 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20584 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20585 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20586 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20587 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20588 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020589
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020590 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20591 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20592 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20593 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20594 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20595 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020596 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020597
Asish Bhattacharya34504582017-08-08 12:55:01 +053020598 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20599 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20600 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20601 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20602 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20603 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20604 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20605 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20606 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20607 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20608 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20609 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20610 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20611 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20612 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20613 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20614 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020615 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20616 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20617 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20618 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20619 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020620 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20621 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20622 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20623 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20624 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20625 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020626 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20627 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020628
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020629 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20630 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20631 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20632 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20633 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20634 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20635
20636 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20637 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20638 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20639 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20640 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20641 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20642
20643 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20644 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20645 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20646 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20647 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20648 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20649
20650 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20651 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20652 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20653 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20654 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20655 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20656
20657 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20658 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20659 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20660 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20661 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20662 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20663
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020664 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20665 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20666 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20667 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20668 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20669 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20670 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20671 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20672 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20673 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20674 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20675 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20676 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20677 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20678 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20679 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20680 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20681 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
20682
20683 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20684 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20685 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20686 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20687 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20688 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20689 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20690 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20691 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20692 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20693 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20694 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20695 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20696 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20697 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20698 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20699 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20700 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
20701
20702 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20703 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20704 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20705 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20706 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20707 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20708 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20709 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20710 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20711 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20712 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20713 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20714 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20715 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20716 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20717 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20718 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
20719
20720 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20721 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20722 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20723 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20724 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20725 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20726 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20727 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20728 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20729 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20730 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20731 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20732 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20733 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20734 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20735 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20736 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
20737
20738 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20739 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20740 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020741 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020742 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20743 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20744 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020745 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20746 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020747 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20748 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020749 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020750 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20751 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020752 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020753 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20754 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20755 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020756 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20757 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020758 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20759 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20760 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20761
20762 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
20763 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
20764 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020765 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020766 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
20767 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
20768 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020769 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
20770 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020771 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
20772 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020773 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020774 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
20775 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20776 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
20777 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
20778 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
20779 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
20780 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
20781 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
20782 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020783 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020784 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020785 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
20786 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
20787 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
20788 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020789 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020790 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
20791 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020792
20793 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20794 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20795 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20796 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20797 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20798 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20799 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20800 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20801 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20802 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20803 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20804 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20805 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20806 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20807 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20808 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020809 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020810 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
20811
20812 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20813 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20814 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20815 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20816 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20817 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20818 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20819 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20820 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20821 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20822 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20823 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20824 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20825 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20826 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20827 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020828 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020829 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
20830
20831 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20832 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20833 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20834 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20835 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20836 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20837 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20838 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20839 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20840 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20841 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20842 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20843 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20844 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20845 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20846 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20847 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
20848
20849 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20850 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20851 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20852 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20853 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20854 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20855 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20856 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20857 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20858 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20859 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20860 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20861 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20862 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20863 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20864 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20865 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
20866
Rohit Kumara5077932017-09-10 22:05:05 +053020867 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20868 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20869 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20870 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20871 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20872 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20873 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20874 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20875 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20876 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20877 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20878 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20879 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20880 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20881 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20882 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20883 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
20884
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020885 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20886 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20887 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20888 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20889 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20890 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
20891
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020892 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
20893 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20894 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20895 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
20896
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020897 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20898 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20899 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20900 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20901 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20902 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
20903
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020904 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
20905 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020906 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20907 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20908 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20909 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
20910
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020911 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
20912 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020913 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20914 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20915 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20916 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
20917
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020918 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20919 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020920 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20921 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20922 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20923 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
20924
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020925 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
20926 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020927 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20928 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20929 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20930 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
20931
Karthikeyan Mani57550082018-05-03 18:43:58 -070020932 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
20933 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20934 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
20935 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20936 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20937 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
20938
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020939 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20940 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20941 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20942 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20943 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020944 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
20945
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020946 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20947 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20948 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20949 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20950 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20951 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
20952
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020953 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20954 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020955 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20956 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20957 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20958 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
20959
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020960 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20961 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020962 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20963 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20964 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20965 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
20966
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020967 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20968 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020969 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20970 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20971 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20972 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
20973
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020974 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20975 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020976 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20977 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20978 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20979 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
20980
Rohit Kumara5077932017-09-10 22:05:05 +053020981 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20982 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053020983 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20984 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20985 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20986 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
20987
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020988 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20989 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20990 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20991 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20992 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20993 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
20994 {"HDMI", NULL, "HDMI_DL_HL"},
20995
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020996 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020997 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20998 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20999 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021000 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021001 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21002
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021003 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021004 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21005 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21006 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21007 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21008 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21009
21010 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21011 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21012 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21013 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21014 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21015 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21016
21017 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21018 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21019 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21020 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21021 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21022 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21023
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021024 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021025 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21026 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21027 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21028 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21029 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21030
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021031 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021032 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21033 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21034 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21035 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21036
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021037 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021038 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21039 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21040 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21041 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21042
21043 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21044 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21045
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021046 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21047 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21048 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21049
21050 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21051 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21052 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21053
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021054 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21055 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21056 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21057 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021058 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021059 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021060 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021061 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021062 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21063 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21064
21065 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21066 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21067 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21068 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21069 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21070 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21071 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21072 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21073 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21074 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21075
21076 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21077 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21078 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21079 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21080
21081 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21082 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21083 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21084 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21085
21086 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21087 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21088 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21089 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21090
21091 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21092 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21093 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21094 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21095
21096 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21097 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21098 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21099 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21100
21101 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21102 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21103 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21104 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21105
21106 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21107 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21108 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21109 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21110
Laxminath Kasam38070be2017-08-17 18:21:59 +053021111 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21112 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21113 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21114 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21115 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21116 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21117 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21118 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21119 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21120 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021121
21122 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21123 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21124 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21125 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21126
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021127 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21128 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21129 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21130 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21131
21132 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21133 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21134 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21135 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21136
21137 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21138 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21139 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21140 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21141
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021142 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21143 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21144 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21145 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21146
21147 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21148 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21149 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21150 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021151
21152 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21153 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21154 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21155 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21156 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21157 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21158 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21159 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21160
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021161 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21162 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21163 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21164 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21165 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21166 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21167 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21168 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021169 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021170 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021171 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21172 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21173 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021174 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21175 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021176
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021177 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21178 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21179 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21180 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21181 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21182 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21183 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21184 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21185 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21186 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21187 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21188 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21189 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21190 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21191 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021192 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021193 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021194 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21195 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21196 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21197 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21198 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21199 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021200 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21201
21202 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21203 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21204 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21205 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21206 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21207 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21208 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21209 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21210 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21211 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21212 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21213 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21214 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21215 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21216 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021217 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021218 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21219 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21220 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21221 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21222 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21223 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021224 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21225
21226 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21227 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21228 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21229 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21230 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21231 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21232 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21233 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21234 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21235 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21236 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21237 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21238 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21239 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021240 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021241 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21242 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21243
21244 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21245 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21246 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21247 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21248 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21249 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21250 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21251 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21252 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21253 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21254 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21255 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21256 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21257 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21258 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021259 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21260 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21261 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021262 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21263 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21264 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021265 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21266 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21267 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21268 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21269 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21270 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21271 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21272 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021273 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21274 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021275 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021276 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21277
21278 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21279 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21280 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21281 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21282 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21283 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21284 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21285 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021286 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21287 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021288 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021289 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21290
21291
21292 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21293 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21294 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21295 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21296 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21297 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21298 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21299 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021300 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21301 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021302 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021303 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21304
21305
21306 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21307 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21308 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21309 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21310 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21311 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21312 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21313 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021314 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21315 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021316 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021317 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21318
21319 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21320 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21321 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21322 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21323 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21324 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21325 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21326 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021327 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21328 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021329 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021330 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21331
21332 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21333 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21334 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21335 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21336 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21337 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021338 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21339 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021340 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021341 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21342
21343 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21344 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21345 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21346 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21347 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21348 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021349 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21350 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021351 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021352 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21353
21354 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21355 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21356 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21357 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21358 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21359 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021360 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21361 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021362 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021363 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21364
21365
21366 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21367 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21368 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21369 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21370 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21371 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21372 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21373 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21374 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21375 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21376 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021377 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021378 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21379 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21380 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21381 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21382 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21383 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21384
21385 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21386 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21387 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21388 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21389 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21390 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21391 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21392 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21393 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21394 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21395 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21396 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021397 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21398 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021399 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021400 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021401 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021402 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21403 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21404 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21405 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21406
21407 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21408 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21409 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21410 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21411 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21412 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21413 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21414 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21415 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21416 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21417 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21418
21419 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21420 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021421 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21422 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021423 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21424 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21425 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21426 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21427 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21428 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21429 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21430 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21431 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21432 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21433
21434 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21435 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21436 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21437 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21438 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21439 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21440 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21441 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21442 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21443 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21444 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21445 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21446 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21447 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21448 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21449 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
21450 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21451 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21452 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21453 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
21454 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21455 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21456 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21457 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21458 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21459 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21460 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21461 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21462 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21463 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21464 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21465 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021466 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21467 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21468 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21469 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21470 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21471 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21472 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21473 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021474
21475 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21476 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21477 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21478 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21479 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21480 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21481 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21482 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21483 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21484 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21485 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21486 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21487 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21488 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21489 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21490 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021491 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21492 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21493 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21494 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021495 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
21496
21497 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21498 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21499 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21500 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21501 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21502 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21503 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21504 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21505 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21506 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21507 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21508 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21509 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21510 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21511 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21512 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021513 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21514 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21515 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21516 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021517 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
21518
21519 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21520 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21521 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21522 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21523 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21524 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21525 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21526 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21527 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21528 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21529 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21530 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21531 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21532 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21533 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21534 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021535 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21536 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21537 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21538 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021539 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
21540
21541 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21542 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21543 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21544 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21545 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21546 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21547 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21548 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21549 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21550 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21551 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21552 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21553 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21554 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21555 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21556 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021557 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21558 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21559 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21560 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021561 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
21562
21563 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21564 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21565 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21566 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21567 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21568 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21569 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21570 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21571 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21572 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21573 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21574 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21575 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21576 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21577 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21578 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021579 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21580 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21581 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21582 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021583 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
21584
21585 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21586 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21587 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21588 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21589 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21590 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21591 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21592 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21593 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21594 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21595 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21596 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21597 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21598 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21599 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21600 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021601 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21602 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21603 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21604 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021605 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
21606
21607 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21608 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21609 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21610 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21611 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21612 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21613 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21614 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21615 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21616 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21617 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21618 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21619 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21620 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21621 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21622 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021623 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21624 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21625 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21626 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021627 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
21628
21629 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21630 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21631 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21632 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21633 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21634 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21635 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21636 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21637 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21638 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21639 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21640 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21641 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21642 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21643 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21644 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021645 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21646 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21647 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21648 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021649 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
21650
21651 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21652 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21653 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21654 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21655 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21656 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21657 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21658 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21659 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21660 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21661 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21662 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21663 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21664 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21665 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21666 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021667 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21668 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21669 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21670 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021671 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
21672
21673 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21674 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21675 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21676 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21677 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21678 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21679 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21680 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21681 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21682 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21683 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21684 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21685 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21686 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21687 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21688 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021689 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21690 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21691 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21692 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021693 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
21694
21695 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21696 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21697 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21698 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21699 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21700 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21701 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21702 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21703 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21704 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21705 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21706 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21707 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21708 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21709 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21710 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021711 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21712 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21713 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21714 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021715 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
21716
21717 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21718 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21719 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21720 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21721 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21722 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21723 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21724 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21725 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21726 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21727 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21728 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21729 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21730 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21731 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21732 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021733 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21734 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21735 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21736 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021737 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
21738
21739 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21740 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21741 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21742 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21743 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21744 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21745 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21746 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21747 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21748 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21749 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21750 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21751 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21752 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21753 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21754 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021755 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21756 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21757 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21758 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021759 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
21760
21761 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21762 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21763 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21764 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21765 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21766 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21767 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21768 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21769 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21770 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21771 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21772 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21773 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21774 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21775 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21776 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021777 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21778 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21779 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21780 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021781 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
21782
21783 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21784 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21785 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21786 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21787 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21788 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21789 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21790 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21791 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21792 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21793 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21794 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21795 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21796 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21797 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21798 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021799 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21800 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21801 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21802 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021803 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
21804
21805 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21806 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21807 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21808 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21809 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21810 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21811 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21812 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21813 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21814 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21815 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21816 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21817 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21818 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21819 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21820 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021821 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21822 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21823 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21824 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021825 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
21826
Rohit Kumara5077932017-09-10 22:05:05 +053021827 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21828 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21829 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21830 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21831 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21832 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21833 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21834 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21835 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21836 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21837 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21838 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21839 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21840 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21841 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21842 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21843 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21844 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21845 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21846 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021847 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021848
21849 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21850 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21851 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21852 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21853 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21854 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21855 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21856 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21857 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21858 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21859 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21860 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21861 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21862 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21863 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21864 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21865 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21866 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21867 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21868 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021869 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021870
21871 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21872 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21873 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21874 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21875 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21876 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21877 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21878 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21879 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21880 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21881 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21882 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21883 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21884 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21885 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21886 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21887 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21888 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21889 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21890 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021891 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021892
21893 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21894 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21895 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21896 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21897 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21898 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21899 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21900 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21901 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21902 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21903 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21904 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21905 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21906 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21907 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21908 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21909 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21910 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21911 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21912 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021913 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021914
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021915 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21916 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21917 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21918 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021919 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021920 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21921 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21922 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21923 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21924 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21925 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
21926
21927 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21928 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21929 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21930 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021931 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021932 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21933 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21934 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21935 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21936 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21937 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
21938
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021939 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21940 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21941 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080021942 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21943 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21944
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021945
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021946 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21947 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21948 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21949 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21950 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21951 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21952 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21953 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21954 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021955 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021956 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21957 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21958 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21959 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21960 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021961 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021962 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21963 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
21964 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21965 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21966 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
21967 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21968 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
21969 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
21970 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
21971 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
21972
21973
21974 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21975 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21976 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21977 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21978 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021979 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021980 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
21981
21982 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21983 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21984 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021985 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021986 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
21987
21988 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21989 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21990 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21991 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
21992
21993 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21994 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21995 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21996 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
21997
Rohit Kumara5077932017-09-10 22:05:05 +053021998 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21999 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22000 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22001 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22002
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022003 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22004 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22005 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22006 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22007 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22008 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22009 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22010 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022011 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022012 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22013 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22014 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22015 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22016 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22017 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22018 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22019 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22020 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22021 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22022 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22023
22024 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22025 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22026 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22027 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22028 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22029 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22030 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22031 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22032 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22033 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22034 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22035 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22036
22037 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22038 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22039 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22040 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22041 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22042 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22043 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22044 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22045 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22046 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22047 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22048 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22049
kunleizdf5a00a2017-11-27 15:27:36 +080022050 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22051 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022052 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022053
22054 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22055 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022056 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022057
22058 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22059 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022060 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22061
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022062 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22063 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022064 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22065 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22066 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22067 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22068
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022069 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22070 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022071 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22072 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22073 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22074 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22075
22076 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22077 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22078 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22079 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22080 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22081 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22082 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22083 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22084 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22085 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22086 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22087 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22088 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22089
22090 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22091 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22092 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22093 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22094 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22095 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22096 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22097 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22098 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22099 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22100 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22101 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22102 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22103
22104 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22105 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22106
22107 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22108 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22109
Karthikeyan Mani57550082018-05-03 18:43:58 -070022110 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22111 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22112
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022113 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22114 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22115
22116 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22117 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22118 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22119
22120 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22121 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22122 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22123 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022124 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022125 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22126 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22127 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22128 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022129 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022130 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22131
22132 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22133 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22134 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22135 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022136 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022137 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22138 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22139 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022140 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022141 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22142
22143 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22144 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22145 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22146 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022147 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022148 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22149 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22150 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
22151
22152 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22153 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22154 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22155 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022156 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022157 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22158 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22159 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22160 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22161 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
22162
Rohit Kumara5077932017-09-10 22:05:05 +053022163 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22164 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22165 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22166 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22167 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22168 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22169 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22170 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
22171
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022172 /* Backend Enablement */
22173
22174 {"BE_OUT", NULL, "PRI_I2S_RX"},
22175 {"BE_OUT", NULL, "SEC_I2S_RX"},
22176 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22177 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22178 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22179 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22180 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22181 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22182 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22183 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22184 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
22185 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22186 {"BE_OUT", NULL, "HDMI"},
22187 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022188 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022189 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22190 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022191 {"BE_OUT", NULL, "MI2S_RX"},
22192 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22193 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22194 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22195 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22196 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22197 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22198 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22199 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022200 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22201 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22202 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022203 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22204 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22205 {"BE_OUT", NULL, "INT_FM_RX"},
22206 {"BE_OUT", NULL, "PCM_RX"},
22207 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22208 {"BE_OUT", NULL, "AUX_PCM_RX"},
22209 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22210 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22211 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022212 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022213 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22214 {"BE_OUT", NULL, "INT_FM_RX"},
22215 {"BE_OUT", NULL, "PCM_RX"},
22216 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22217 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22218 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22219 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22220 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22221 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22222 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22223 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22224 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22225 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22226 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
22227 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22228 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22229 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22230 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22231 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22232 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22233 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22234 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22235 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022236 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22237 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22238 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22239 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022240 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22241 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022242 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22243 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22244 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22245 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22246 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22247 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22248 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22249 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022250
22251 {"PRI_I2S_TX", NULL, "BE_IN"},
22252 {"MI2S_TX", NULL, "BE_IN"},
22253 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22254 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22255 {"PRI_MI2S_TX", NULL, "BE_IN"},
22256 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022257 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022258 {"INT2_MI2S_TX", NULL, "BE_IN"},
22259 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022260 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022261 {"INT5_MI2S_TX", NULL, "BE_IN"},
22262 {"SEC_MI2S_TX", NULL, "BE_IN"},
22263 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22264 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22265 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22266 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22267 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22268 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22269 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22270 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22271 {"SLIMBUS_8_TX", NULL, "BE_IN" },
22272 {"USB_AUDIO_TX", NULL, "BE_IN" },
22273 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22274 {"INT_FM_TX", NULL, "BE_IN"},
22275 {"PCM_TX", NULL, "BE_IN"},
22276 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22277 {"BE_OUT", NULL, "STUB_RX"},
22278 {"STUB_TX", NULL, "BE_IN"},
22279 {"STUB_1_TX", NULL, "BE_IN"},
22280 {"BE_OUT", NULL, "AUX_PCM_RX"},
22281 {"AUX_PCM_TX", NULL, "BE_IN"},
22282 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22283 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22284 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022285 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022286 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22287 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22288 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22289 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022290 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22291 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022292 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22293 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22294 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22295 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22296 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022297 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22298 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022299 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22300 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22301 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22302 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22303 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22304 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22305 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22306 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22307 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22308 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22309 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22310 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22311 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22312 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22313 {"TERT_TDM_TX_3", NULL, "BE_IN"},
22314 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22315 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22316 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22317 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022318 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22319 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22320 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22321 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022322 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22323 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22324 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22325 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22326 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022327 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22328 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22329 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22330 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22331 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22332 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022333 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22334 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022335};
22336
22337static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22338 struct snd_pcm_hw_params *params)
22339{
22340 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22341 unsigned int be_id = rtd->dai_link->id;
22342
22343 if (be_id >= MSM_BACKEND_DAI_MAX) {
22344 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22345 return -EINVAL;
22346 }
22347
22348 mutex_lock(&routing_lock);
22349 msm_bedais[be_id].sample_rate = params_rate(params);
22350 msm_bedais[be_id].channel = params_channels(params);
22351 msm_bedais[be_id].format = params_format(params);
22352 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22353 __func__, msm_bedais[be_id].sample_rate,
22354 msm_bedais[be_id].format, be_id);
22355 mutex_unlock(&routing_lock);
22356 return 0;
22357}
22358
22359static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22360{
22361 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22362 unsigned int be_id = rtd->dai_link->id;
22363 int i, session_type, path_type, topology;
22364 struct msm_pcm_routing_bdai_data *bedai;
22365 struct msm_pcm_routing_fdai_data *fdai;
22366
22367 pr_debug("%s: substream->pcm->id:%s\n",
22368 __func__, substream->pcm->id);
22369
22370 if (be_id >= MSM_BACKEND_DAI_MAX) {
22371 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22372 return -EINVAL;
22373 }
22374
22375 bedai = &msm_bedais[be_id];
22376 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22377 0 : 1);
22378 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22379 path_type = ADM_PATH_PLAYBACK;
22380 else
22381 path_type = ADM_PATH_LIVE_REC;
22382
22383 mutex_lock(&routing_lock);
22384 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22385 if (!is_mm_lsm_fe_id(i))
22386 continue;
22387 fdai = &fe_dai_map[i][session_type];
22388 if (fdai->strm_id != INVALID_SESSION) {
22389 int idx;
22390 int port_id;
22391 unsigned long copp =
22392 session_copp_map[i][session_type][be_id];
22393 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22394 if (test_bit(idx, &copp))
22395 break;
22396 fdai->be_srate = bedai->sample_rate;
22397 port_id = bedai->port_id;
22398 topology = adm_get_topology_for_port_copp_idx(port_id,
22399 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022400 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022401 adm_close(bedai->port_id, fdai->perf_mode, idx);
22402 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22403 __func__, copp, i, session_type, be_id,
22404 topology);
22405 clear_bit(idx,
22406 &session_copp_map[i][session_type][be_id]);
22407 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22408 (bedai->passthr_mode[i] == LEGACY_PCM))
22409 msm_pcm_routing_deinit_pp(bedai->port_id,
22410 topology);
22411 }
22412 }
22413
22414 bedai->active = 0;
22415 bedai->sample_rate = 0;
22416 bedai->channel = 0;
22417 for (i = 0; i < MSM_FRONTEND_DAI_MAX; i++) {
22418 if (bedai->passthr_mode[i] != LISTEN)
22419 bedai->passthr_mode[i] = LEGACY_PCM;
22420 }
22421 mutex_unlock(&routing_lock);
22422
22423 return 0;
22424}
22425
22426static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22427{
22428 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22429 unsigned int be_id = rtd->dai_link->id;
22430 int i, path_type, topology;
22431 int session_type = INVALID_SESSION;
22432 struct msm_pcm_routing_bdai_data *bedai;
22433 u32 channels, sample_rate;
22434 uint16_t bits_per_sample = 16, voc_path_type;
22435 struct msm_pcm_routing_fdai_data *fdai;
22436 u32 session_id;
22437 struct media_format_info voc_be_media_format;
22438 bool is_lsm;
22439
22440 pr_debug("%s: substream->pcm->id:%s\n",
22441 __func__, substream->pcm->id);
22442
22443 if (be_id >= MSM_BACKEND_DAI_MAX) {
22444 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22445 return -EINVAL;
22446 }
22447
22448 bedai = &msm_bedais[be_id];
22449
22450 mutex_lock(&routing_lock);
22451 if (bedai->active == 1)
22452 goto done; /* Ignore prepare if back-end already active */
22453
22454 /* AFE port is not active at this point. However, still
22455 * go ahead setting active flag under the notion that
22456 * QDSP6 is able to handle ADM starting before AFE port
22457 * is started.
22458 */
22459 bedai->active = 1;
22460
22461 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22462 if (!(is_mm_lsm_fe_id(i) &&
22463 route_check_fe_id_adm_support(i)))
22464 continue;
22465
22466 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
22467 if (bedai->passthr_mode[i] != LEGACY_PCM)
22468 path_type = ADM_PATH_COMPRESSED_RX;
22469 else
22470 path_type = ADM_PATH_PLAYBACK;
22471 session_type = SESSION_TYPE_RX;
22472 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +020022473 if ((bedai->passthr_mode[i] != LEGACY_PCM) &&
22474 (bedai->passthr_mode[i] != LISTEN))
22475 path_type = ADM_PATH_COMPRESSED_TX;
22476 else
22477 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022478 session_type = SESSION_TYPE_TX;
22479 }
22480
22481 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
22482 (i <= MSM_FRONTEND_DAI_LSM8);
22483 fdai = &fe_dai_map[i][session_type];
22484 if (fdai->strm_id != INVALID_SESSION) {
22485 int app_type, app_type_idx, copp_idx, acdb_dev_id;
22486
22487 if (session_type == SESSION_TYPE_TX &&
22488 fdai->be_srate &&
22489 (fdai->be_srate != bedai->sample_rate)) {
22490 pr_debug("%s: flush strm %d diff BE rates\n",
22491 __func__,
22492 fdai->strm_id);
22493
22494 if (fdai->event_info.event_func)
22495 fdai->event_info.event_func(
22496 MSM_PCM_RT_EVT_BUF_RECFG,
22497 fdai->event_info.priv_data);
22498 fdai->be_srate = 0; /* might not need it */
22499 }
22500 bits_per_sample = msm_routing_get_bit_width(
22501 bedai->format);
22502
22503 app_type =
22504 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
22505 if (app_type && is_lsm) {
22506 app_type_idx =
22507 msm_pcm_routing_get_lsm_app_type_idx(app_type);
22508 sample_rate =
22509 fe_dai_app_type_cfg[i][session_type][be_id]
22510 .sample_rate;
22511 bits_per_sample =
22512 lsm_app_type_cfg[app_type_idx].bit_width;
22513 } else if (app_type) {
22514 app_type_idx =
22515 msm_pcm_routing_get_app_type_idx(app_type);
22516 sample_rate =
22517 fe_dai_app_type_cfg[i][session_type]
22518 [be_id].sample_rate;
22519 bits_per_sample =
22520 app_type_cfg[app_type_idx].bit_width;
22521 } else
22522 sample_rate = bedai->sample_rate;
22523 /*
22524 * check if ADM needs to be configured with different
22525 * channel mapping than backend
22526 */
22527 if (!bedai->adm_override_ch)
22528 channels = bedai->channel;
22529 else
22530 channels = bedai->adm_override_ch;
22531 acdb_dev_id =
22532 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
22533 topology = msm_routing_get_adm_topology(i, session_type,
22534 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020022535
22536 if ((bedai->passthr_mode[i] ==
22537 COMPRESSED_PASSTHROUGH_DSD)
22538 || (bedai->passthr_mode[i] ==
22539 COMPRESSED_PASSTHROUGH_GEN)
22540 || (bedai->passthr_mode[i] ==
22541 COMPRESSED_PASSTHROUGH_IEC61937))
22542 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
22543
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022544 copp_idx = adm_open(bedai->port_id, path_type,
22545 sample_rate, channels, topology,
22546 fdai->perf_mode, bits_per_sample,
22547 app_type, acdb_dev_id);
22548 if ((copp_idx < 0) ||
22549 (copp_idx >= MAX_COPPS_PER_PORT)) {
22550 pr_err("%s: adm open failed\n", __func__);
22551 mutex_unlock(&routing_lock);
22552 return -EINVAL;
22553 }
22554 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
22555 __func__, i, session_type, be_id);
22556 set_bit(copp_idx,
22557 &session_copp_map[i][session_type][be_id]);
22558
22559 if (msm_is_resample_needed(
22560 sample_rate,
22561 bedai->sample_rate))
22562 adm_copp_mfc_cfg(
22563 bedai->port_id, copp_idx,
22564 bedai->sample_rate);
22565
22566 msm_pcm_routing_build_matrix(i, session_type, path_type,
22567 fdai->perf_mode,
22568 bedai->passthr_mode[i]);
22569 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22570 (bedai->passthr_mode[i] == LEGACY_PCM))
22571 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
22572 topology, channels);
22573 }
22574 }
22575
22576 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22577 session_id = msm_pcm_routing_get_voc_sessionid(i);
22578 if (session_id) {
22579 pr_debug("%s voice session_id: 0x%x\n", __func__,
22580 session_id);
22581
22582 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22583 voc_path_type = RX_PATH;
22584 else
22585 voc_path_type = TX_PATH;
22586
22587 voc_set_route_flag(session_id, voc_path_type, 1);
22588
22589 memset(&voc_be_media_format, 0,
22590 sizeof(struct media_format_info));
22591
22592 voc_be_media_format.port_id = bedai->port_id;
22593 voc_be_media_format.num_channels = bedai->channel;
22594 voc_be_media_format.sample_rate = bedai->sample_rate;
22595 voc_be_media_format.bits_per_sample = bedai->format;
22596 /* Defaulting this to 1 for voice call usecases */
22597 voc_be_media_format.channel_mapping[0] = 1;
22598
22599 voc_set_device_config(session_id, voc_path_type,
22600 &voc_be_media_format);
22601
22602 if (voc_get_route_flag(session_id, RX_PATH) &&
22603 voc_get_route_flag(session_id, TX_PATH))
22604 voc_enable_device(session_id);
22605 }
22606 }
22607
22608 /* Check if backend is an external ec ref port and set as needed */
22609 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
22610
22611 memset(&voc_be_media_format, 0,
22612 sizeof(struct media_format_info));
22613
22614 /* Get format info for ec ref port from msm_bedais[] */
22615 voc_be_media_format.port_id = bedai->port_id;
22616 voc_be_media_format.num_channels = bedai->channel;
22617 voc_be_media_format.bits_per_sample = bedai->format;
22618 voc_be_media_format.sample_rate = bedai->sample_rate;
22619 /* Defaulting this to 1 for voice call usecases */
22620 voc_be_media_format.channel_mapping[0] = 1;
22621 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
22622 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
22623 __func__, voc_be_media_format.port_id,
22624 voc_be_media_format.num_channels,
22625 voc_be_media_format.bits_per_sample,
22626 voc_be_media_format.sample_rate);
22627 }
22628
22629done:
22630 mutex_unlock(&routing_lock);
22631
22632 return 0;
22633}
22634
22635static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
22636 int fe_id)
22637{
22638 int index, topo_id, be_idx;
22639 unsigned long pp_config = 0;
22640 bool mute_on;
22641 int latency;
22642 bool compr_passthr_mode = true;
22643
22644 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
22645
22646 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
22647 pr_err("%s: Device pp params on invalid port %d\n",
22648 __func__, port_id);
22649 return -EINVAL;
22650 }
22651
22652 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22653 if (port_id == msm_bedais[be_idx].port_id)
22654 break;
22655 }
22656
22657 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22658 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22659 return -EINVAL;
22660 }
22661
22662 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22663 if (msm_bedais_pp_params[index].port_id == port_id)
22664 break;
22665 }
22666 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22667 pr_err("%s: Invalid backend pp params index %d\n",
22668 __func__, index);
22669 return -EINVAL;
22670 }
22671
22672 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
22673 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
22674 pr_err("%s: Invalid passthrough topology 0x%x\n",
22675 __func__, topo_id);
22676 return -EINVAL;
22677 }
22678
22679 if ((msm_bedais[be_idx].passthr_mode[fe_id] == LEGACY_PCM) ||
22680 (msm_bedais[be_idx].passthr_mode[fe_id] == LISTEN))
22681 compr_passthr_mode = false;
22682
22683 pp_config = msm_bedais_pp_params[index].pp_params_config;
22684 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
22685 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22686 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
22687 mute_on = msm_bedais_pp_params[index].mute_on;
22688 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22689 adm_send_compressed_device_mute(port_id,
22690 copp_idx,
22691 mute_on);
22692 }
22693 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
22694 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22695 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
22696 &pp_config);
22697 latency = msm_bedais_pp_params[index].latency;
22698 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22699 adm_send_compressed_device_latency(port_id,
22700 copp_idx,
22701 latency);
22702 }
22703 return 0;
22704}
22705
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022706static uint32_t msm_routing_get_topology(size_t data_size, void *data)
22707{
22708 uint32_t topology = NULL_COPP_TOPOLOGY;
22709 void *cal_info = NULL;
22710 uint32_t size = 0;
22711
22712 /* Retrieve cal_info size from cal data*/
22713 size = data_size - sizeof(struct audio_cal_type_basic);
22714 cal_info = kzalloc(size, GFP_KERNEL);
22715
22716 if (!cal_info)
22717 goto done;
22718
22719 memcpy(cal_info,
22720 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
22721
22722 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
22723 kfree(cal_info);
22724 cal_info = NULL;
22725
22726done:
22727 pr_debug("%s: Using topology %d\n", __func__, topology);
22728
22729 return topology;
22730}
22731
22732static void msm_routing_load_topology(size_t data_size, void *data)
22733{
22734 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022735 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022736
22737 topology_id = msm_routing_get_topology(data_size, data);
22738 if (topology_id != NULL_COPP_TOPOLOGY)
22739 ret = q6core_load_unload_topo_modules(topology_id,
22740 CORE_LOAD_TOPOLOGY);
22741 if (ret < 0)
22742 pr_debug("%s %d load topology failed\n",
22743 __func__, topology_id);
22744
22745}
22746
22747static void msm_routing_unload_topology(uint32_t topology_id)
22748{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022749 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022750
22751 if (topology_id != NULL_COPP_TOPOLOGY)
22752 ret = q6core_load_unload_topo_modules(topology_id,
22753 CORE_UNLOAD_TOPOLOGY);
22754 if (ret < 0)
22755 pr_debug("%s %d unload topology failed\n",
22756 __func__, topology_id);
22757
22758}
22759
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022760static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22761 struct snd_ctl_elem_value *ucontrol)
22762{
22763 int pp_id = ucontrol->value.integer.value[0];
22764 int port_id = 0;
22765 int index, be_idx, i, topo_id, idx;
22766 bool mute;
22767 int latency;
22768 bool compr_passthr_mode = true;
22769
22770 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
22771
22772 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22773 port_id = msm_bedais[be_idx].port_id;
22774 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
22775 break;
22776 }
22777
22778 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22779 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22780 return -EINVAL;
22781 }
22782
22783 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22784 if (msm_bedais_pp_params[index].port_id == port_id)
22785 break;
22786 }
22787 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22788 pr_err("%s: Invalid pp params backend index %d\n",
22789 __func__, index);
22790 return -EINVAL;
22791 }
22792
22793 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
22794 MSM_FRONTEND_DAI_MM_SIZE) {
22795 if ((msm_bedais[be_idx].passthr_mode[i] == LEGACY_PCM) ||
22796 (msm_bedais[be_idx].passthr_mode[i] == LISTEN))
22797 compr_passthr_mode = false;
22798
22799 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22800 unsigned long copp =
22801 session_copp_map[i]
22802 [SESSION_TYPE_RX][be_idx];
22803 if (!test_bit(idx, &copp))
22804 continue;
22805 topo_id = adm_get_topology_for_port_copp_idx(port_id,
22806 idx);
22807 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
22808 continue;
22809 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
22810 __func__, port_id, copp, msm_bedais[be_idx].active,
22811 msm_bedais[be_idx].passthr_mode[i]);
22812 switch (pp_id) {
22813 case ADM_PP_PARAM_MUTE_ID:
22814 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22815 mute = ucontrol->value.integer.value[1] ? true : false;
22816 msm_bedais_pp_params[index].mute_on = mute;
22817 set_bit(ADM_PP_PARAM_MUTE_BIT,
22818 &msm_bedais_pp_params[index].pp_params_config);
22819 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22820 adm_send_compressed_device_mute(port_id,
22821 idx, mute);
22822 break;
22823 case ADM_PP_PARAM_LATENCY_ID:
22824 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22825 msm_bedais_pp_params[index].latency =
22826 ucontrol->value.integer.value[1];
22827 set_bit(ADM_PP_PARAM_LATENCY_BIT,
22828 &msm_bedais_pp_params[index].pp_params_config);
22829 latency = msm_bedais_pp_params[index].latency =
22830 ucontrol->value.integer.value[1];
22831 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22832 adm_send_compressed_device_latency(port_id,
22833 idx, latency);
22834 break;
22835 default:
22836 pr_info("%s, device pp param %d not supported\n",
22837 __func__, pp_id);
22838 break;
22839 }
22840 }
22841 }
22842 return 0;
22843}
22844
22845static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22846 struct snd_ctl_elem_value *ucontrol)
22847{
22848 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
22849 return 0;
22850}
22851
22852static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
22853 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
22854 0, 3, msm_routing_get_device_pp_params_mixer,
22855 msm_routing_put_device_pp_params_mixer),
22856};
22857
22858static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
22859 struct snd_ctl_elem_value *ucontrol)
22860{
22861 ucontrol->value.integer.value[0] =
22862 core_get_license_status(ASM_MEDIA_FMT_APTX);
22863 pr_debug("%s: status %ld\n", __func__,
22864 ucontrol->value.integer.value[0]);
22865 return 0;
22866}
22867
22868static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
22869 struct snd_ctl_elem_value *ucontrol)
22870{
22871 int32_t status = 0;
22872
22873 status = core_set_license(ucontrol->value.integer.value[0],
22874 APTX_CLASSIC_DEC_LICENSE_ID);
22875 pr_debug("%s: status %d\n", __func__, status);
22876 return status;
22877}
22878
22879static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
22880 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
22881 0xFFFF, 0, msm_aptx_dec_license_control_get,
22882 msm_aptx_dec_license_control_put),
22883};
22884
22885static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
22886 struct snd_ctl_elem_info *uinfo)
22887{
22888 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22889 uinfo->count = sizeof(be_dai_name_table);
22890 return 0;
22891}
22892
22893static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
22894 unsigned int __user *bytes,
22895 unsigned int size)
22896{
22897 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022898 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022899
22900 if (size < sizeof(be_dai_name_table)) {
22901 pr_err("%s: invalid size %d requested, returning\n",
22902 __func__, size);
22903 ret = -EINVAL;
22904 goto done;
22905 }
22906
22907 /*
22908 * Fill be_dai_name_table from msm_bedais table to reduce code changes
22909 * needed when adding new backends
22910 */
22911 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
22912 be_dai_name_table[i].be_id = i;
22913 strlcpy(be_dai_name_table[i].be_name,
22914 msm_bedais[i].name,
22915 LPASS_BE_NAME_MAX_LENGTH);
22916 }
22917
22918 ret = copy_to_user(bytes, &be_dai_name_table,
22919 sizeof(be_dai_name_table));
22920 if (ret) {
22921 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
22922 ret = -EFAULT;
22923 }
22924
22925done:
22926 return ret;
22927}
22928
22929static const struct snd_kcontrol_new
22930 msm_routing_be_dai_name_table_mixer_controls[] = {
22931 {
22932 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
22933 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
22934 .info = msm_routing_be_dai_name_table_info,
22935 .name = "Backend DAI Name Table",
22936 .tlv.c = snd_soc_bytes_tlv_callback,
22937 .private_value = (unsigned long) &(struct soc_bytes_ext) {
22938 .max = sizeof(be_dai_name_table),
22939 .get = msm_routing_be_dai_name_table_tlv_get,
22940 }
22941 },
22942};
22943
22944static int msm_routing_stereo_channel_reverse_control_get(
22945 struct snd_kcontrol *kcontrol,
22946 struct snd_ctl_elem_value *ucontrol)
22947{
22948 ucontrol->value.integer.value[0] = swap_ch;
22949 pr_debug("%s: Swap channel value: %ld\n", __func__,
22950 ucontrol->value.integer.value[0]);
22951 return 0;
22952}
22953
22954static int msm_routing_stereo_channel_reverse_control_put(
22955 struct snd_kcontrol *kcontrol,
22956 struct snd_ctl_elem_value *ucontrol)
22957{
22958 int i, idx, be_index, port_id;
22959 int ret = 0;
22960 unsigned long copp;
22961
22962 pr_debug("%s Swap channel value:%ld\n", __func__,
22963 ucontrol->value.integer.value[0]);
22964
22965 swap_ch = ucontrol->value.integer.value[0];
22966
22967 mutex_lock(&routing_lock);
22968 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
22969 port_id = msm_bedais[be_index].port_id;
22970 if (!msm_bedais[be_index].active)
22971 continue;
22972
22973 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
22974 MSM_FRONTEND_DAI_MM_SIZE) {
22975 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
22976 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22977 if (!test_bit(idx, &copp))
22978 continue;
22979
22980 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
22981 __func__, port_id, idx);
22982 ret = adm_swap_speaker_channels(
22983 port_id, idx,
22984 msm_bedais[be_index].sample_rate,
22985 swap_ch);
22986 if (ret) {
22987 pr_err("%s:Swap_channel failed, err=%d\n",
22988 __func__, ret);
22989 goto done;
22990 }
22991 }
22992 }
22993 }
22994done:
22995 mutex_unlock(&routing_lock);
22996 return ret;
22997}
22998
22999static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23000 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23001 1, 0, msm_routing_stereo_channel_reverse_control_get,
23002 msm_routing_stereo_channel_reverse_control_put),
23003};
23004
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023005static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23006 struct snd_ctl_elem_info *uinfo)
23007{
23008 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23009 uinfo->count = 1;
23010 return 0;
23011}
23012
23013static int msm_routing_instance_id_support_put(
23014 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23015{
23016 bool supported = ucontrol->value.integer.value[0] ? true : false;
23017
23018 q6common_update_instance_id_support(supported);
23019 return 0;
23020}
23021
23022static int msm_routing_instance_id_support_get(
23023 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23024{
23025 bool supported = false;
23026
23027 supported = q6common_is_instance_id_supported();
23028 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23029
23030 return 0;
23031}
23032
23033static const struct snd_kcontrol_new
23034 msm_routing_feature_support_mixer_controls[] = {
23035 {
23036 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23037 SNDRV_CTL_ELEM_ACCESS_WRITE,
23038 .info = msm_routing_instance_id_support_info,
23039 .name = "Instance ID Support",
23040 .put = msm_routing_instance_id_support_put,
23041 .get = msm_routing_instance_id_support_get,
23042 },
23043};
23044
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023045static const struct snd_pcm_ops msm_routing_pcm_ops = {
23046 .hw_params = msm_pcm_routing_hw_params,
23047 .close = msm_pcm_routing_close,
23048 .prepare = msm_pcm_routing_prepare,
23049};
23050
23051/* Not used but frame seems to require it */
23052static int msm_routing_probe(struct snd_soc_platform *platform)
23053{
23054 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
23055 ARRAY_SIZE(msm_qdsp6_widgets));
23056 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
23057 ARRAY_SIZE(intercon));
23058
23059 snd_soc_dapm_new_widgets(platform->component.dapm.card);
23060
23061 snd_soc_add_platform_controls(platform, lsm_controls,
23062 ARRAY_SIZE(lsm_controls));
23063
23064 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
23065 ARRAY_SIZE(aanc_slim_0_rx_mux));
23066
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023067 snd_soc_add_platform_controls(platform, aanc_noise_level,
23068 ARRAY_SIZE(aanc_noise_level));
23069
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023070 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
23071 ARRAY_SIZE(msm_voc_session_controls));
23072
23073 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
23074 ARRAY_SIZE(app_type_cfg_controls));
23075
23076 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
23077 ARRAY_SIZE(lsm_app_type_cfg_controls));
23078
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023079 snd_soc_add_platform_controls(platform, module_cfg_controls,
23080 ARRAY_SIZE(module_cfg_controls));
23081
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023082 snd_soc_add_platform_controls(platform,
23083 stereo_to_custom_stereo_controls,
23084 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23085
23086 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
23087 ARRAY_SIZE(ec_ref_param_controls));
23088
23089 snd_soc_add_platform_controls(platform, channel_mixer_controls,
23090 ARRAY_SIZE(channel_mixer_controls));
23091
23092 msm_qti_pp_add_controls(platform);
23093
23094 msm_dts_srs_tm_add_controls(platform);
23095
23096 msm_dolby_dap_add_controls(platform);
23097
23098 snd_soc_add_platform_controls(platform,
23099 use_ds1_or_ds2_controls,
23100 ARRAY_SIZE(use_ds1_or_ds2_controls));
23101
23102 snd_soc_add_platform_controls(platform,
23103 device_pp_params_mixer_controls,
23104 ARRAY_SIZE(device_pp_params_mixer_controls));
23105
23106 snd_soc_add_platform_controls(platform,
23107 msm_routing_be_dai_name_table_mixer_controls,
23108 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23109
23110 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
23111 ARRAY_SIZE(msm_source_tracking_controls));
23112 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
23113 ARRAY_SIZE(adm_channel_config_controls));
23114
23115 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
23116 ARRAY_SIZE(aptx_dec_license_controls));
23117 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
23118 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023119 snd_soc_add_platform_controls(
23120 platform, msm_routing_feature_support_mixer_controls,
23121 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23122
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023123 return 0;
23124}
23125
23126int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23127{
23128 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23129}
23130
23131void msm_routing_pcm_free(struct snd_pcm *pcm)
23132{
23133 msm_pcm_routing_hwdep_free(pcm);
23134}
23135
23136static struct snd_soc_platform_driver msm_soc_routing_platform = {
23137 .ops = &msm_routing_pcm_ops,
23138 .probe = msm_routing_probe,
23139 .pcm_new = msm_routing_pcm_new,
23140 .pcm_free = msm_routing_pcm_free,
23141};
23142
23143static int msm_routing_pcm_probe(struct platform_device *pdev)
23144{
23145
23146 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
23147 return snd_soc_register_platform(&pdev->dev,
23148 &msm_soc_routing_platform);
23149}
23150
23151static int msm_routing_pcm_remove(struct platform_device *pdev)
23152{
23153 snd_soc_unregister_platform(&pdev->dev);
23154 return 0;
23155}
23156
23157static const struct of_device_id msm_pcm_routing_dt_match[] = {
23158 {.compatible = "qcom,msm-pcm-routing"},
23159 {}
23160};
23161MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
23162
23163static struct platform_driver msm_routing_pcm_driver = {
23164 .driver = {
23165 .name = "msm-pcm-routing",
23166 .owner = THIS_MODULE,
23167 .of_match_table = msm_pcm_routing_dt_match,
23168 },
23169 .probe = msm_routing_pcm_probe,
23170 .remove = msm_routing_pcm_remove,
23171};
23172
23173int msm_routing_check_backend_enabled(int fedai_id)
23174{
23175 int i;
23176
23177 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23178 /* bad ID assigned in machine driver */
23179 pr_err("%s: bad MM ID\n", __func__);
23180 return 0;
23181 }
23182 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23183 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23184 return msm_bedais[i].active;
23185 }
23186 return 0;
23187}
23188
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023189static int get_cal_type_index(int32_t cal_type)
23190{
23191 int ret = -EINVAL;
23192
23193 switch (cal_type) {
23194 case ADM_TOPOLOGY_CAL_TYPE:
23195 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23196 break;
23197 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23198 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23199 break;
23200 default:
23201 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23202 }
23203 return ret;
23204}
23205
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023206static int msm_routing_set_cal(int32_t cal_type,
23207 size_t data_size, void *data)
23208{
23209 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023210 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023211 pr_debug("%s\n", __func__);
23212
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023213 cal_index = get_cal_type_index(cal_type);
23214 if (cal_index < 0) {
23215 pr_err("%s: Could not get cal index %d\n",
23216 __func__, cal_index);
23217 ret = -EINVAL;
23218 goto done;
23219 }
23220
23221 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023222 if (ret < 0) {
23223 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23224 __func__, ret, cal_type);
23225 ret = -EINVAL;
23226 goto done;
23227 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023228 /* Pre-load if it is ADM topology */
23229 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23230 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23231 msm_routing_load_topology(data_size, data);
23232 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023233done:
23234 return ret;
23235}
23236
23237static void msm_routing_delete_cal_data(void)
23238{
23239 pr_debug("%s\n", __func__);
23240
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023241 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023242}
23243
23244static int msm_routing_init_cal_data(void)
23245{
23246 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023247 struct cal_type_info cal_type_info[] = {
23248 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023249 {NULL, NULL, NULL,
23250 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023251 {NULL, NULL, cal_utils_match_buf_num} },
23252
23253 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23254 {NULL, NULL, NULL,
23255 msm_routing_set_cal, NULL, NULL} },
23256 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023257 };
23258 pr_debug("%s\n", __func__);
23259
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023260 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23261 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023262 if (ret < 0) {
23263 pr_err("%s: could not create cal type!\n",
23264 __func__);
23265 ret = -EINVAL;
23266 goto err;
23267 }
23268
23269 return ret;
23270err:
23271 msm_routing_delete_cal_data();
23272 return ret;
23273}
23274
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023275int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023276{
23277 mutex_init(&routing_lock);
23278 if (msm_routing_init_cal_data())
23279 pr_err("%s: could not init cal data!\n", __func__);
23280
23281 afe_set_routing_callback(
23282 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23283
23284 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23285 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23286
23287 return platform_driver_register(&msm_routing_pcm_driver);
23288}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023289
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023290void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023291{
23292 msm_routing_delete_cal_data();
23293 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23294 mutex_destroy(&routing_lock);
23295 platform_driver_unregister(&msm_routing_pcm_driver);
23296}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023297
23298MODULE_DESCRIPTION("MSM routing platform driver");
23299MODULE_LICENSE("GPL v2");