blob: 4f0ea8343f9cf7db391226a2ba7da29ac97a767a [file] [log] [blame]
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08001/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include <linux/init.h>
14#include <linux/err.h>
15#include <linux/module.h>
16#include <linux/moduleparam.h>
17#include <linux/platform_device.h>
18#include <linux/bitops.h>
19#include <linux/mutex.h>
20#include <linux/of_device.h>
21#include <linux/slab.h>
22#include <sound/core.h>
23#include <sound/soc.h>
24#include <sound/soc-dapm.h>
25#include <sound/pcm.h>
26#include <sound/initval.h>
27#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028#include <sound/tlv.h>
29#include <sound/asound.h>
30#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053031#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053032#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053033#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053034#include <dsp/q6voice.h>
35#include <dsp/q6adm-v2.h>
36#include <dsp/q6asm-v2.h>
37#include <dsp/q6afe-v2.h>
38#include <dsp/q6lsm.h>
39#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080040#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053041#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053042
43#include "msm-pcm-routing-v2.h"
44#include "msm-pcm-routing-devdep.h"
45#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053046#include "msm-dolby-dap-config.h"
47#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053048
49#ifndef CONFIG_DOLBY_DAP
50#undef DOLBY_ADM_COPP_TOPOLOGY_ID
51#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
52#endif
53
54#ifndef CONFIG_DOLBY_DS2
55#undef DS2_ADM_COPP_TOPOLOGY_ID
56#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
57#endif
58
59static struct mutex routing_lock;
60
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053061static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053062
63static int fm_switch_enable;
64static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080065static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053066static int int0_mi2s_switch_enable;
67static int int4_mi2s_switch_enable;
68static int pri_mi2s_switch_enable;
69static int sec_mi2s_switch_enable;
70static int tert_mi2s_switch_enable;
71static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053072static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053073static int fm_pcmrx_switch_enable;
74static int usb_switch_enable;
75static int lsm_port_index;
76static int slim0_rx_aanc_fb_port;
77static int msm_route_ec_ref_rx;
78static int msm_ec_ref_ch = 4;
79static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
80static int msm_ec_ref_sampling_rate = 48000;
81static uint32_t voc_session_id = ALL_SESSION_VSID;
82static int msm_route_ext_ec_ref;
83static bool is_custom_stereo_on;
84static bool is_ds2_on;
85static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053086static int aanc_level;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053087
88#define WEIGHT_0_DB 0x4000
89/* all the FEs which can support channel mixer */
90static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
91/* input BE for each FE */
92static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
93
94enum {
95 MADNONE,
96 MADAUDIO,
97 MADBEACON,
98 MADULTRASOUND,
99 MADSWAUDIO,
100};
101
102#define ADM_LSM_PORT_INDEX 9
103
104#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
105#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
106#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
107#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
108#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
109#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
110#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
111#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
112#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
113#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530114#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
115#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530116
117#define LSM_FUNCTION_TEXT "LSM Function"
118static const char * const lsm_port_text[] = {
119 "None",
120 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
121 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
122 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530123 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530124};
125
126struct msm_pcm_route_bdai_pp_params {
127 u16 port_id; /* AFE port ID */
128 unsigned long pp_params_config;
129 bool mute_on;
130 int latency;
131};
132
133static struct msm_pcm_route_bdai_pp_params
134 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
135 {HDMI_RX, 0, 0, 0},
136 {DISPLAY_PORT_RX, 0, 0, 0},
137};
138
139/*
140 * The be_dai_name_table is passed to HAL so that it can specify the
141 * BE ID for the BE it wants to enable based on the name. Thus there
142 * is a matching table and structure in HAL that need to be updated
143 * if any changes to these are made.
144 */
145struct msm_pcm_route_bdai_name {
146 unsigned int be_id;
147 char be_name[LPASS_BE_NAME_MAX_LENGTH];
148};
149static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
150
151static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
152 int fe_id);
153
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700154static void msm_routing_load_topology(size_t data_size, void *data);
155static void msm_routing_unload_topology(uint32_t topology_id);
156
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530157static int msm_routing_get_bit_width(unsigned int format)
158{
159 int bit_width;
160
161 switch (format) {
162 case SNDRV_PCM_FORMAT_S32_LE:
163 bit_width = 32;
164 break;
165 case SNDRV_PCM_FORMAT_S24_LE:
166 case SNDRV_PCM_FORMAT_S24_3LE:
167 bit_width = 24;
168 break;
169 case SNDRV_PCM_FORMAT_S16_LE:
170 default:
171 bit_width = 16;
172 }
173 return bit_width;
174}
175
176static bool msm_is_resample_needed(int input_sr, int output_sr)
177{
178 bool rc = false;
179
180 if (input_sr != output_sr)
181 rc = true;
182
183 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
184 (rc ? "oh yes" : "not really"),
185 input_sr, output_sr);
186
187 return rc;
188}
189
190static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
191 int channels)
192{
193 int rc = 0;
194
195 switch (topology) {
196 case SRS_TRUMEDIA_TOPOLOGY_ID:
197 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
198 msm_dts_srs_tm_init(port_id, copp_idx);
199 break;
200 case DS2_ADM_COPP_TOPOLOGY_ID:
201 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
202 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
203 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
204 is_custom_stereo_on);
205 if (rc < 0)
206 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
207 __func__, topology, port_id,
208 is_custom_stereo_on, rc);
209 break;
210 case DOLBY_ADM_COPP_TOPOLOGY_ID:
211 if (is_ds2_on) {
212 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
213 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
214 is_custom_stereo_on);
215 if (rc < 0)
216 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
217 __func__, topology, port_id, rc);
218 } else {
219 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
220 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
221 is_custom_stereo_on);
222 if (rc < 0)
223 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
224 __func__, topology, port_id, rc);
225 }
226 break;
227 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
228 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
229 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
230 if (rc < 0)
231 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
232 __func__, topology, port_id, copp_idx, rc);
233 break;
234 default:
235 /* custom topology specific feature param handlers */
236 break;
237 }
238}
239
240static void msm_pcm_routing_deinit_pp(int port_id, int topology)
241{
242 switch (topology) {
243 case SRS_TRUMEDIA_TOPOLOGY_ID:
244 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
245 msm_dts_srs_tm_deinit(port_id);
246 break;
247 case DS2_ADM_COPP_TOPOLOGY_ID:
248 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
249 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
250 msm_ds2_dap_deinit(port_id);
251 break;
252 case DOLBY_ADM_COPP_TOPOLOGY_ID:
253 if (is_ds2_on) {
254 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
255 msm_ds2_dap_deinit(port_id);
256 } else {
257 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
258 msm_dolby_dap_deinit(port_id);
259 }
260 break;
261 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
262 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
263 msm_qti_pp_asphere_deinit(port_id);
264 break;
265 default:
266 /* custom topology specific feature deinit handlers */
267 break;
268 }
269}
270
271static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
272 int path_type, int perf_mode)
273{
274 int itr = 0, rc = 0;
275
276 if ((path_type == ADM_PATH_PLAYBACK) &&
277 (perf_mode == LEGACY_PCM_MODE) &&
278 is_custom_stereo_on) {
279 for (itr = 0; itr < payload.num_copps; itr++) {
280 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
281 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
282 continue;
283 }
284
285 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
286 payload.port_id[itr],
287 payload.copp_idx[itr],
288 payload.session_id,
289 Q14_GAIN_ZERO_POINT_FIVE,
290 Q14_GAIN_ZERO_POINT_FIVE,
291 Q14_GAIN_ZERO_POINT_FIVE,
292 Q14_GAIN_ZERO_POINT_FIVE);
293 if (rc < 0)
294 pr_err("%s: err setting custom stereo\n",
295 __func__);
296 }
297 }
298}
299
300#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
301struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
302 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_RX},
303 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_TX},
304 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_RX},
305 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_TX},
306 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_HDMI},
307 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_RX},
308 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_TX},
309 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_RX},
310 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_TX},
311 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
312 LPASS_BE_AFE_PCM_RX},
313 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
314 LPASS_BE_AFE_PCM_TX},
315 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
316 LPASS_BE_AUXPCM_RX},
317 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
318 LPASS_BE_AUXPCM_TX},
319 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
320 LPASS_BE_VOICE_PLAYBACK_TX},
321 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
322 LPASS_BE_VOICE2_PLAYBACK_TX},
323 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
324 LPASS_BE_INCALL_RECORD_RX},
325 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
326 LPASS_BE_INCALL_RECORD_TX},
327 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_RX},
328 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_TX},
329 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SEC_I2S_RX},
330 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_RX},
331 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_TX},
332 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_RX},
333 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_TX},
334 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_RX},
335 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_TX},
336 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_RX},
337 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_TX},
338 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_RX},
339 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_TX},
340 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_RX},
341 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_TX},
342 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_RX},
343 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_TX},
344 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_RX},
345 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_TX},
346 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_RX},
347 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_TX},
348 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_1_TX},
349 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
350 LPASS_BE_QUAT_MI2S_RX},
351 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
352 LPASS_BE_QUAT_MI2S_TX},
353 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
354 LPASS_BE_SEC_MI2S_RX},
355 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
356 LPASS_BE_SEC_MI2S_TX},
357 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
358 LPASS_BE_PRI_MI2S_RX},
359 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
360 LPASS_BE_PRI_MI2S_TX},
361 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
362 LPASS_BE_TERT_MI2S_RX},
363 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
364 LPASS_BE_TERT_MI2S_TX},
365 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
366 LPASS_BE_AUDIO_I2S_RX},
367 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
368 LPASS_BE_SEC_AUXPCM_RX},
369 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
370 LPASS_BE_SEC_AUXPCM_TX},
Ralf Herzc8701f72018-06-20 11:37:35 +0200371 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
372 LPASS_BE_PRI_SPDIF_RX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0, {0},
374 LPASS_BE_SEC_MI2S_RX_SD1},
375 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
376 LPASS_BE_QUIN_MI2S_RX},
377 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
378 LPASS_BE_QUIN_MI2S_TX},
379 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
380 LPASS_BE_SENARY_MI2S_TX},
381 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
382 LPASS_BE_PRI_TDM_RX_0},
383 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
384 LPASS_BE_PRI_TDM_TX_0},
385 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
386 LPASS_BE_PRI_TDM_RX_1},
387 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
388 LPASS_BE_PRI_TDM_TX_1},
389 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
390 LPASS_BE_PRI_TDM_RX_2},
391 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
392 LPASS_BE_PRI_TDM_TX_2},
393 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
394 LPASS_BE_PRI_TDM_RX_3},
395 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
396 LPASS_BE_PRI_TDM_TX_3},
397 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
398 LPASS_BE_PRI_TDM_RX_4},
399 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
400 LPASS_BE_PRI_TDM_TX_4},
401 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
402 LPASS_BE_PRI_TDM_RX_5},
403 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
404 LPASS_BE_PRI_TDM_TX_5},
405 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
406 LPASS_BE_PRI_TDM_RX_6},
407 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
408 LPASS_BE_PRI_TDM_TX_6},
409 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
410 LPASS_BE_PRI_TDM_RX_7},
411 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
412 LPASS_BE_PRI_TDM_TX_7},
413 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
414 LPASS_BE_SEC_TDM_RX_0},
415 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
416 LPASS_BE_SEC_TDM_TX_0},
417 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
418 LPASS_BE_SEC_TDM_RX_1},
419 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
420 LPASS_BE_SEC_TDM_TX_1},
421 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
422 LPASS_BE_SEC_TDM_RX_2},
423 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
424 LPASS_BE_SEC_TDM_TX_2},
425 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
426 LPASS_BE_SEC_TDM_RX_3},
427 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
428 LPASS_BE_SEC_TDM_TX_3},
429 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
430 LPASS_BE_SEC_TDM_RX_4},
431 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
432 LPASS_BE_SEC_TDM_TX_4},
433 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
434 LPASS_BE_SEC_TDM_RX_5},
435 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
436 LPASS_BE_SEC_TDM_TX_5},
437 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
438 LPASS_BE_SEC_TDM_RX_6},
439 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
440 LPASS_BE_SEC_TDM_TX_6},
441 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
442 LPASS_BE_SEC_TDM_RX_7},
443 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
444 LPASS_BE_SEC_TDM_TX_7},
445 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
446 LPASS_BE_TERT_TDM_RX_0},
447 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
448 LPASS_BE_TERT_TDM_TX_0},
449 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
450 LPASS_BE_TERT_TDM_RX_1},
451 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
452 LPASS_BE_TERT_TDM_TX_1},
453 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
454 LPASS_BE_TERT_TDM_RX_2},
455 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
456 LPASS_BE_TERT_TDM_TX_2},
457 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
458 LPASS_BE_TERT_TDM_RX_3},
459 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
460 LPASS_BE_TERT_TDM_TX_3},
461 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
462 LPASS_BE_TERT_TDM_RX_4},
463 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
464 LPASS_BE_TERT_TDM_TX_4},
465 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
466 LPASS_BE_TERT_TDM_RX_5},
467 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
468 LPASS_BE_TERT_TDM_TX_5},
469 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
470 LPASS_BE_TERT_TDM_RX_6},
471 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
472 LPASS_BE_TERT_TDM_TX_6},
473 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
474 LPASS_BE_TERT_TDM_RX_7},
475 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
476 LPASS_BE_TERT_TDM_TX_7},
477 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
478 LPASS_BE_QUAT_TDM_RX_0},
479 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
480 LPASS_BE_QUAT_TDM_TX_0},
481 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
482 LPASS_BE_QUAT_TDM_RX_1},
483 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
484 LPASS_BE_QUAT_TDM_TX_1},
485 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
486 LPASS_BE_QUAT_TDM_RX_2},
487 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
488 LPASS_BE_QUAT_TDM_TX_2},
489 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
490 LPASS_BE_QUAT_TDM_RX_3},
491 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
492 LPASS_BE_QUAT_TDM_TX_3},
493 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
494 LPASS_BE_QUAT_TDM_RX_4},
495 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
496 LPASS_BE_QUAT_TDM_TX_4},
497 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
498 LPASS_BE_QUAT_TDM_RX_5},
499 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
500 LPASS_BE_QUAT_TDM_TX_5},
501 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
502 LPASS_BE_QUAT_TDM_RX_6},
503 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
504 LPASS_BE_QUAT_TDM_TX_6},
505 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
506 LPASS_BE_QUAT_TDM_RX_7},
507 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
508 LPASS_BE_QUAT_TDM_TX_7},
Rohit Kumara5077932017-09-10 22:05:05 +0530509 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
510 LPASS_BE_QUIN_TDM_RX_0},
511 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
512 LPASS_BE_QUIN_TDM_TX_0},
513 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
514 LPASS_BE_QUIN_TDM_RX_1},
515 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
516 LPASS_BE_QUIN_TDM_TX_1},
517 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
518 LPASS_BE_QUIN_TDM_RX_2},
519 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
520 LPASS_BE_QUIN_TDM_TX_2},
521 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
522 LPASS_BE_QUIN_TDM_RX_3},
523 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
524 LPASS_BE_QUIN_TDM_TX_3},
525 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
526 LPASS_BE_QUIN_TDM_RX_4},
527 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
528 LPASS_BE_QUIN_TDM_TX_4},
529 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
530 LPASS_BE_QUIN_TDM_RX_5},
531 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
532 LPASS_BE_QUIN_TDM_TX_5},
533 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
534 LPASS_BE_QUIN_TDM_RX_6},
535 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
536 LPASS_BE_QUIN_TDM_TX_6},
537 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
538 LPASS_BE_QUIN_TDM_RX_7},
539 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
540 LPASS_BE_QUIN_TDM_TX_7},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530541 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
542 LPASS_BE_INT_BT_A2DP_RX},
543 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
544 LPASS_BE_USB_AUDIO_RX},
545 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
546 LPASS_BE_USB_AUDIO_TX},
547 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
548 LPASS_BE_DISPLAY_PORT},
Karthikeyan Mani57550082018-05-03 18:43:58 -0700549 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
550 LPASS_BE_DISPLAY_PORT1},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
552 LPASS_BE_TERT_AUXPCM_RX},
553 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
554 LPASS_BE_TERT_AUXPCM_TX},
555 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
556 LPASS_BE_QUAT_AUXPCM_RX},
557 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
558 LPASS_BE_QUAT_AUXPCM_TX},
Rohit Kumara5077932017-09-10 22:05:05 +0530559 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
560 LPASS_BE_QUIN_AUXPCM_RX},
561 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
562 LPASS_BE_QUIN_AUXPCM_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
564 LPASS_BE_INT0_MI2S_RX},
565 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
566 LPASS_BE_INT0_MI2S_TX},
567 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
568 LPASS_BE_INT1_MI2S_RX},
569 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
570 LPASS_BE_INT1_MI2S_TX},
571 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
572 LPASS_BE_INT2_MI2S_RX},
573 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
574 LPASS_BE_INT2_MI2S_TX},
575 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
576 LPASS_BE_INT3_MI2S_RX},
577 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
578 LPASS_BE_INT3_MI2S_TX},
579 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
580 LPASS_BE_INT4_MI2S_RX},
581 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
582 LPASS_BE_INT4_MI2S_TX},
583 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
584 LPASS_BE_INT5_MI2S_RX},
585 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
586 LPASS_BE_INT5_MI2S_TX},
587 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
588 LPASS_BE_INT6_MI2S_RX},
589 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
590 LPASS_BE_INT6_MI2S_TX},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530591 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
592 LPASS_BE_WSA_CDC_DMA_RX_0},
593 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
594 LPASS_BE_WSA_CDC_DMA_TX_0},
595 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
596 LPASS_BE_WSA_CDC_DMA_RX_1},
597 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
598 LPASS_BE_WSA_CDC_DMA_TX_1},
599 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
600 LPASS_BE_WSA_CDC_DMA_TX_2},
601 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
602 LPASS_BE_VA_CDC_DMA_TX_0},
603 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
604 LPASS_BE_VA_CDC_DMA_TX_1},
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530605 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
606 LPASS_BE_RX_CDC_DMA_RX_0},
607 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
608 LPASS_BE_TX_CDC_DMA_TX_0},
609 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
610 LPASS_BE_RX_CDC_DMA_RX_1},
611 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
612 LPASS_BE_TX_CDC_DMA_TX_1},
613 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
614 LPASS_BE_RX_CDC_DMA_RX_2},
615 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
616 LPASS_BE_TX_CDC_DMA_TX_2},
617 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
618 LPASS_BE_RX_CDC_DMA_RX_3},
619 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
620 LPASS_BE_TX_CDC_DMA_TX_3},
621 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
622 LPASS_BE_RX_CDC_DMA_RX_4},
623 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
624 LPASS_BE_TX_CDC_DMA_TX_4},
625 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
626 LPASS_BE_RX_CDC_DMA_RX_5},
627 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
628 LPASS_BE_TX_CDC_DMA_TX_5},
629 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
630 LPASS_BE_RX_CDC_DMA_RX_6},
631 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
632 LPASS_BE_RX_CDC_DMA_RX_7},
Ralf Herzc8701f72018-06-20 11:37:35 +0200633 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
634 LPASS_BE_PRI_SPDIF_TX},
635 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
636 LPASS_BE_SEC_SPDIF_RX},
637 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
638 LPASS_BE_SEC_SPDIF_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530639};
640
641/* Track ASM playback & capture sessions of DAI
642 * Track LSM listen sessions
643 */
644static struct msm_pcm_routing_fdai_data
645 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
646 /* MULTIMEDIA1 */
647 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
648 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
649 /* MULTIMEDIA2 */
650 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
651 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
652 /* MULTIMEDIA3 */
653 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
654 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
655 /* MULTIMEDIA4 */
656 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
657 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
658 /* MULTIMEDIA5 */
659 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
660 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
661 /* MULTIMEDIA6 */
662 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
663 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
664 /* MULTIMEDIA7*/
665 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
666 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
667 /* MULTIMEDIA8 */
668 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
669 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
670 /* MULTIMEDIA9 */
671 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
672 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
673 /* MULTIMEDIA10 */
674 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
675 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
676 /* MULTIMEDIA11 */
677 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
678 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
679 /* MULTIMEDIA12 */
680 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
681 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
682 /* MULTIMEDIA13 */
683 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
684 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
685 /* MULTIMEDIA14 */
686 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
687 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
688 /* MULTIMEDIA15 */
689 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
690 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
691 /* MULTIMEDIA16 */
692 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
693 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
694 /* MULTIMEDIA17 */
695 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
696 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
697 /* MULTIMEDIA18 */
698 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
699 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
700 /* MULTIMEDIA19 */
701 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
702 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
703 /* MULTIMEDIA20 */
704 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
705 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700706 /* MULTIMEDIA21 */
707 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
708 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530709 /* MULTIMEDIA28 */
710 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
711 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
712 /* MULTIMEDIA29 */
713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530715 /* VOIP */
716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
718 /* AFE_RX */
719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
721 /* AFE_TX */
722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
724 /* VOICE_STUB */
725 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
726 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530727 /* DTMF_RX */
728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530730 /* QCHAT */
731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
733 /* VOLTE_STUB */
734 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
735 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
736 /* LSM1 */
737 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
738 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
739 /* LSM2 */
740 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
741 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
742 /* LSM3 */
743 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
744 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
745 /* LSM4 */
746 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
747 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
748 /* LSM5 */
749 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
750 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
751 /* LSM6 */
752 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
753 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
754 /* LSM7 */
755 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
756 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
757 /* LSM8 */
758 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
759 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
760 /* VOICE2_STUB */
761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530763 /* VOICEMMODE1 */
764 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
765 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
766 /* VOICEMMODE2 */
767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
769};
770
771static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
772 [MSM_BACKEND_DAI_MAX];
773static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
774static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
775static struct msm_pcm_stream_app_type_cfg
776 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
777
778static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
779
780/* The caller of this should aqcuire routing lock */
781void msm_pcm_routing_get_bedai_info(int be_idx,
782 struct msm_pcm_routing_bdai_data *be_dai)
783{
784 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
785 memcpy(be_dai, &msm_bedais[be_idx],
786 sizeof(struct msm_pcm_routing_bdai_data));
787}
788
789/* The caller of this should aqcuire routing lock */
790void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
791 struct msm_pcm_routing_fdai_data *fe_dai)
792{
793 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
794 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
795 sizeof(struct msm_pcm_routing_fdai_data));
796}
797
798void msm_pcm_routing_acquire_lock(void)
799{
800 mutex_lock(&routing_lock);
801}
802
803void msm_pcm_routing_release_lock(void)
804{
805 mutex_unlock(&routing_lock);
806}
807
808static int msm_pcm_routing_get_app_type_idx(int app_type)
809{
810 int idx;
811
812 pr_debug("%s: app_type: %d\n", __func__, app_type);
813 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
814 if (app_type_cfg[idx].app_type == app_type)
815 return idx;
816 }
817 pr_info("%s: App type not available, fallback to default\n", __func__);
818 return 0;
819}
820
821static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
822{
823 int idx;
824
825 pr_debug("%s: app_type: %d\n", __func__, app_type);
826 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
827 if (lsm_app_type_cfg[idx].app_type == app_type)
828 return idx;
829 }
830 pr_debug("%s: App type not available, fallback to default\n", __func__);
831 return 0;
832}
833
834static bool is_mm_lsm_fe_id(int fe_id)
835{
836 bool rc = true;
837
838 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
839 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
840 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
841 rc = false;
842 }
843 return rc;
844}
845
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700846/*
847 * msm_pcm_routing_send_chmix_cfg:
848 * send the channel mixer command to mix the input channels
849 * into output channels.
850 *
851 * @fe_id: front end id
852 * @ip_channel_cnt: input channel count
853 * @op_channel_cnt: output channel count
854 * @ch_wght_coeff: channel weight co-efficients for channel mixing
855 * @session_type: indicates session is of type TX or RX
856 * @stream_type: indicates either Audio or Listen stream type
857 */
858int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
859 int op_channel_cnt, int *ch_wght_coeff,
860 int session_type, int stream_type)
861{
862
863 int rc = 0, idx = 0;
864 int be_index = 0, port_id;
865 unsigned int session_id = 0;
866
867 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
868 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
869 stream_type);
870 if (!is_mm_lsm_fe_id(fe_id)) {
871 /* bad ID assigned in machine driver */
872 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
873 return -EINVAL;
874 }
875
876 if (ch_wght_coeff == NULL) {
877 pr_err("%s: Null channel weightage coefficients passed\n",
878 __func__);
879 return -EINVAL;
880 }
881
882 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
883 port_id = msm_bedais[be_index].port_id;
884 if (!msm_bedais[be_index].active ||
885 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
886 continue;
887
888 session_id = fe_dai_map[fe_id][session_type].strm_id;
889
890 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
891 unsigned long copp =
892 session_copp_map[fe_id][session_type][be_index];
893 if (!test_bit(idx, &copp))
894 continue;
895 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
896 session_id, ip_channel_cnt,
897 op_channel_cnt, ch_wght_coeff,
898 session_type, stream_type);
899 if (rc < 0)
900 pr_err("%s: err setting channel mix config\n",
901 __func__);
902 }
903 }
904
905 return 0;
906}
907EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
908
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530909int msm_pcm_routing_reg_stream_app_type_cfg(
910 int fedai_id, int session_type, int be_id,
911 struct msm_pcm_stream_app_type_cfg *cfg_data)
912{
913 int ret = 0;
914
915 if (cfg_data == NULL) {
916 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
917 ret = -EINVAL;
918 goto done;
919 }
920
921 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
922 __func__, fedai_id, session_type, be_id,
923 cfg_data->app_type, cfg_data->acdb_dev_id,
924 cfg_data->sample_rate);
925
926 if (!is_mm_lsm_fe_id(fedai_id)) {
927 pr_err("%s: Invalid machine driver ID %d\n",
928 __func__, fedai_id);
929 ret = -EINVAL;
930 goto done;
931 }
932 if (session_type != SESSION_TYPE_RX &&
933 session_type != SESSION_TYPE_TX) {
934 pr_err("%s: Invalid session type %d\n",
935 __func__, session_type);
936 ret = -EINVAL;
937 goto done;
938 }
939 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
940 pr_err("%s: Received out of bounds be_id %d\n",
941 __func__, be_id);
942 ret = -EINVAL;
943 goto done;
944 }
945
946 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
947
948 /*
949 * Store the BE ID of the configuration information set as the latest so
950 * the get mixer control knows what to return.
951 */
952 last_be_id_configured[fedai_id][session_type] = be_id;
953
954done:
955 return ret;
956}
957EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
958
959/**
960 * msm_pcm_routing_get_stream_app_type_cfg
961 *
962 * Receives fedai_id, session_type, be_id, and populates app_type,
963 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
964 * -EINVAL and does not alter passed values.
965 *
966 * fedai_id - Passed value, front end ID for which app type config is wanted
967 * session_type - Passed value, session type for which app type config
968 * is wanted
969 * be_id - Returned value, back end device id the app type config data is for
970 * cfg_data - Returned value, configuration data used by app type config
971 */
972int msm_pcm_routing_get_stream_app_type_cfg(
973 int fedai_id, int session_type, int *bedai_id,
974 struct msm_pcm_stream_app_type_cfg *cfg_data)
975{
976 int be_id;
977 int ret = 0;
978
979 if (bedai_id == NULL) {
980 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
981 ret = -EINVAL;
982 goto done;
983 } else if (cfg_data == NULL) {
984 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
985 ret = -EINVAL;
986 goto done;
987 } else if (!is_mm_lsm_fe_id(fedai_id)) {
988 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
989 ret = -EINVAL;
990 goto done;
991 } else if (session_type != SESSION_TYPE_RX &&
992 session_type != SESSION_TYPE_TX) {
993 pr_err("%s: Invalid session type %d\n", __func__, session_type);
994 ret = -EINVAL;
995 goto done;
996 }
997
998 be_id = last_be_id_configured[fedai_id][session_type];
999 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1000 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1001 ret = -EINVAL;
1002 goto done;
1003 }
1004
1005 *bedai_id = be_id;
1006 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1007 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1008 __func__, fedai_id, session_type, *bedai_id,
1009 cfg_data->app_type, cfg_data->acdb_dev_id,
1010 cfg_data->sample_rate);
1011done:
1012 return ret;
1013}
1014EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1015
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301016static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1017 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301018{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301019 struct list_head *ptr, *next;
1020 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301021 pr_debug("%s\n", __func__);
1022
1023 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301024 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301025
1026 cal_block = list_entry(ptr,
1027 struct cal_block_data, list);
1028
Vikram Panduranga770b8382017-09-27 12:17:36 -07001029 if (cal_utils_is_cal_stale(cal_block))
1030 continue;
1031
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301032 if (((struct audio_cal_info_adm_top *)cal_block
1033 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301034 return cal_block;
1035 }
1036 }
1037 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1038 return NULL;
1039}
1040
1041static struct cal_block_data *msm_routing_find_topology(int path,
1042 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301043 int acdb_id,
1044 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301045{
1046 struct list_head *ptr, *next;
1047 struct cal_block_data *cal_block = NULL;
1048 struct audio_cal_info_adm_top *cal_info;
1049
1050 pr_debug("%s\n", __func__);
1051
1052 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301053 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301054
1055 cal_block = list_entry(ptr,
1056 struct cal_block_data, list);
1057
Vikram Panduranga770b8382017-09-27 12:17:36 -07001058 if (cal_utils_is_cal_stale(cal_block))
1059 continue;
1060
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301061 cal_info = (struct audio_cal_info_adm_top *)
1062 cal_block->cal_info;
1063 if ((cal_info->path == path) &&
1064 (cal_info->app_type == app_type) &&
1065 (cal_info->acdb_id == acdb_id)) {
1066 return cal_block;
1067 }
1068 }
1069 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1070 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001071 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301072}
1073
Vikram Panduranga770b8382017-09-27 12:17:36 -07001074/*
1075 * Retrieving cal_block will mark cal_block as stale.
1076 * Hence it cannot be reused or resent unless the flag
1077 * is reset.
1078 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301079static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1080 int be_id)
1081{
1082 int topology = NULL_COPP_TOPOLOGY;
1083 struct cal_block_data *cal_block = NULL;
1084 int app_type = 0, acdb_dev_id = 0;
1085
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301086 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1087 __func__, fedai_id, session_type, be_id);
1088
1089 if (cal_data == NULL)
1090 goto done;
1091
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301092 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1093 acdb_dev_id =
1094 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1095
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301096 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301097 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301098 acdb_dev_id,
1099 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001100 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301101 topology = ((struct audio_cal_info_adm_top *)
1102 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001103 cal_utils_mark_cal_used(cal_block);
1104 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1105 } else {
1106 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301107
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301108 pr_debug("%s: Check for LSM topology\n", __func__);
1109 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1110 cal_block = msm_routing_find_topology(session_type, app_type,
1111 acdb_dev_id,
1112 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001113 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301114 topology = ((struct audio_cal_info_adm_top *)
1115 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001116 cal_utils_mark_cal_used(cal_block);
1117 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301118 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1119 }
1120
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301121done:
1122 pr_debug("%s: Using topology %d\n", __func__, topology);
1123 return topology;
1124}
1125
1126static uint8_t is_be_dai_extproc(int be_dai)
1127{
1128 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1129 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1130 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1131 return 1;
1132 else
1133 return 0;
1134}
1135
1136static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1137 int path_type, int perf_mode,
1138 uint32_t passthr_mode)
1139{
1140 int i, port_type, j, num_copps = 0;
1141 struct route_payload payload;
1142
1143 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1144 path_type == ADM_PATH_COMPRESSED_RX) ?
1145 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1146
1147 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1148 if (!is_be_dai_extproc(i) &&
1149 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1150 (msm_bedais[i].active) &&
1151 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1152 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1153 unsigned long copp =
1154 session_copp_map[fedai_id][sess_type][i];
1155 if (test_bit(j, &copp)) {
1156 payload.port_id[num_copps] =
1157 msm_bedais[i].port_id;
1158 payload.copp_idx[num_copps] = j;
1159 payload.app_type[num_copps] =
1160 fe_dai_app_type_cfg
1161 [fedai_id][sess_type][i]
1162 .app_type;
1163 payload.acdb_dev_id[num_copps] =
1164 fe_dai_app_type_cfg
1165 [fedai_id][sess_type][i]
1166 .acdb_dev_id;
1167 payload.sample_rate[num_copps] =
1168 fe_dai_app_type_cfg
1169 [fedai_id][sess_type][i]
1170 .sample_rate;
1171 num_copps++;
1172 }
1173 }
1174 }
1175 }
1176
1177 if (num_copps) {
1178 payload.num_copps = num_copps;
1179 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1180 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1181 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1182 }
1183}
1184
1185void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1186 int stream_type)
1187{
1188 int i, session_type, path_type, port_type;
1189 u32 mode = 0;
1190
1191 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1192 /* bad ID assigned in machine driver */
1193 pr_err("%s: bad MM ID\n", __func__);
1194 return;
1195 }
1196
1197 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1198 session_type = SESSION_TYPE_RX;
1199 path_type = ADM_PATH_PLAYBACK;
1200 port_type = MSM_AFE_PORT_TYPE_RX;
1201 } else {
1202 session_type = SESSION_TYPE_TX;
1203 path_type = ADM_PATH_LIVE_REC;
1204 port_type = MSM_AFE_PORT_TYPE_TX;
1205 }
1206
1207 mutex_lock(&routing_lock);
1208
1209 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1210 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1211 if (!is_be_dai_extproc(i) &&
1212 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1213 (msm_bedais[i].active) &&
1214 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1215 mode = afe_get_port_type(msm_bedais[i].port_id);
1216 adm_connect_afe_port(mode, dspst_id,
1217 msm_bedais[i].port_id);
1218 break;
1219 }
1220 }
1221 mutex_unlock(&routing_lock);
1222}
1223
1224static bool route_check_fe_id_adm_support(int fe_id)
1225{
1226 bool rc = true;
1227
1228 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1229 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1230 /* fe id is listen while port is set to afe */
1231 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1232 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1233 __func__, fe_id, lsm_port_index);
1234 rc = false;
1235 }
1236 }
1237
1238 return rc;
1239}
1240
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001241/*
1242 * msm_pcm_routing_get_pp_ch_cnt:
1243 * Read the processed channel count
1244 *
1245 * @fe_id: Front end ID
1246 * @session_type: Inidicates RX or TX session type
1247 */
1248int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1249{
1250 struct msm_pcm_stream_app_type_cfg cfg_data;
1251 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301252 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001253
1254 memset(&cfg_data, 0, sizeof(cfg_data));
1255
1256 if (!is_mm_lsm_fe_id(fe_id)) {
1257 pr_err("%s: bad MM ID\n", __func__);
1258 return -EINVAL;
1259 }
1260
1261 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1262 &be_id, &cfg_data);
1263 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301264 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001265 return ret;
1266 }
1267
1268 app_type = cfg_data.app_type;
1269 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1270 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1271}
1272EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1273
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301274int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1275 int dspst_id, int stream_type,
1276 uint32_t passthr_mode)
1277{
1278 int i, j, session_type, path_type, port_type, topology;
1279 int num_copps = 0;
1280 struct route_payload payload;
1281 u32 channels, sample_rate;
1282 u16 bit_width = 16;
1283 bool is_lsm;
1284
1285 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1286 __func__, fe_id, perf_mode, dspst_id,
1287 stream_type, passthr_mode);
1288 if (!is_mm_lsm_fe_id(fe_id)) {
1289 /* bad ID assigned in machine driver */
1290 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1291 return -EINVAL;
1292 }
1293
1294 if (!route_check_fe_id_adm_support(fe_id)) {
1295 /* ignore adm open if not supported for fe_id */
1296 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1297 return 0;
1298 }
1299
1300 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1301 session_type = SESSION_TYPE_RX;
1302 if (passthr_mode != LEGACY_PCM)
1303 path_type = ADM_PATH_COMPRESSED_RX;
1304 else
1305 path_type = ADM_PATH_PLAYBACK;
1306 port_type = MSM_AFE_PORT_TYPE_RX;
1307 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1308 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301309 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301310 path_type = ADM_PATH_COMPRESSED_TX;
1311 else
1312 path_type = ADM_PATH_LIVE_REC;
1313 port_type = MSM_AFE_PORT_TYPE_TX;
1314 } else {
1315 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1316 return -EINVAL;
1317 }
1318
1319 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1320 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1321 mutex_lock(&routing_lock);
1322
1323 payload.num_copps = 0; /* only RX needs to use payload */
1324 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
1325 /* re-enable EQ if active */
1326 msm_qti_pp_send_eq_values(fe_id);
1327 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1328 if (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))
1329 msm_bedais[i].passthr_mode[fe_id] = passthr_mode;
1330
1331 if (!is_be_dai_extproc(i) &&
1332 (afe_get_port_type(msm_bedais[i].port_id) ==
1333 port_type) &&
1334 (msm_bedais[i].active) &&
1335 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1336 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1337
1338 /*
1339 * check if ADM needs to be configured with different
1340 * channel mapping than backend
1341 */
1342 if (!msm_bedais[i].adm_override_ch)
1343 channels = msm_bedais[i].channel;
1344 else
1345 channels = msm_bedais[i].adm_override_ch;
1346
1347 bit_width = msm_routing_get_bit_width(
1348 msm_bedais[i].format);
1349 app_type =
1350 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1351 if (app_type && is_lsm) {
1352 app_type_idx =
1353 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1354 sample_rate =
1355 fe_dai_app_type_cfg[fe_id][session_type][i]
1356 .sample_rate;
1357 bit_width =
1358 lsm_app_type_cfg[app_type_idx].bit_width;
1359 } else if (app_type) {
1360 app_type_idx =
1361 msm_pcm_routing_get_app_type_idx(
1362 app_type);
1363 sample_rate =
1364 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1365 bit_width =
1366 app_type_cfg[app_type_idx].bit_width;
1367 } else {
1368 sample_rate = msm_bedais[i].sample_rate;
1369 }
1370 acdb_dev_id =
1371 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1372 topology = msm_routing_get_adm_topology(fe_id,
1373 session_type,
1374 i);
1375 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1376 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001377 COMPRESSED_PASSTHROUGH_GEN)
1378 || (passthr_mode ==
1379 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301380 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1381 pr_debug("%s: Before adm open topology %d\n", __func__,
1382 topology);
1383
1384 copp_idx =
1385 adm_open(msm_bedais[i].port_id,
1386 path_type, sample_rate, channels,
1387 topology, perf_mode, bit_width,
1388 app_type, acdb_dev_id);
1389 if ((copp_idx < 0) ||
1390 (copp_idx >= MAX_COPPS_PER_PORT)) {
1391 pr_err("%s:adm open failed coppid:%d\n",
1392 __func__, copp_idx);
1393 mutex_unlock(&routing_lock);
1394 return -EINVAL;
1395 }
1396 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1397 __func__, fe_id, session_type, i);
1398 set_bit(copp_idx,
1399 &session_copp_map[fe_id][session_type][i]);
1400
1401 if (msm_is_resample_needed(
1402 sample_rate,
1403 msm_bedais[i].sample_rate))
1404 adm_copp_mfc_cfg(
1405 msm_bedais[i].port_id, copp_idx,
1406 msm_bedais[i].sample_rate);
1407
1408 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1409 unsigned long copp =
1410 session_copp_map[fe_id][session_type][i];
1411 if (test_bit(j, &copp)) {
1412 payload.port_id[num_copps] =
1413 msm_bedais[i].port_id;
1414 payload.copp_idx[num_copps] = j;
1415 payload.app_type[num_copps] =
1416 fe_dai_app_type_cfg
1417 [fe_id][session_type][i]
1418 .app_type;
1419 payload.acdb_dev_id[num_copps] =
1420 fe_dai_app_type_cfg
1421 [fe_id][session_type][i]
1422 .acdb_dev_id;
1423 payload.sample_rate[num_copps] =
1424 fe_dai_app_type_cfg
1425 [fe_id][session_type][i]
1426 .sample_rate;
1427 num_copps++;
1428 }
1429 }
1430 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001431 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301432 && passthr_mode !=
Ralf Herzc8701f72018-06-20 11:37:35 +02001433 COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301434 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001435 msm_bedais[i].port_id,
1436 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301437 }
1438 }
1439 if (num_copps) {
1440 payload.num_copps = num_copps;
1441 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1442 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1443 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1444 }
1445 mutex_unlock(&routing_lock);
1446 return 0;
1447}
1448
1449static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1450{
1451 u32 session_id;
1452
1453 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301454 case MSM_FRONTEND_DAI_QCHAT:
1455 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1456 break;
1457 case MSM_FRONTEND_DAI_VOIP:
1458 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1459 break;
1460 case MSM_FRONTEND_DAI_VOICEMMODE1:
1461 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1462 break;
1463 case MSM_FRONTEND_DAI_VOICEMMODE2:
1464 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1465 break;
1466 default:
1467 session_id = 0;
1468 }
1469
1470 pr_debug("%s session_id 0x%x", __func__, session_id);
1471 return session_id;
1472}
1473
1474static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1475 int dspst_id, int stream_type)
1476{
1477 int copp_idx = 0;
1478 int sess_type = 0;
1479 int i = 0, j = 0, be_id;
1480 int ret = 0;
1481
1482 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1483 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1484 return 0;
1485 }
1486
1487 if (!(channel_mixer[fe_id].enable)) {
1488 pr_debug("%s: channel mixer not enabled for FE %d\n",
1489 __func__, fe_id);
1490 return 0;
1491 }
1492
1493 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1494 sess_type = SESSION_TYPE_RX;
1495 else
1496 sess_type = SESSION_TYPE_TX;
1497
1498 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1499 ++i) {
1500 be_id = channel_input[fe_id][i] - 1;
1501 channel_mixer[fe_id].input_channels[i] =
1502 msm_bedais[be_id].channel;
1503
1504 if ((msm_bedais[be_id].active) &&
1505 test_bit(fe_id,
1506 &msm_bedais[be_id].fe_sessions[0])) {
1507 unsigned long copp =
1508 session_copp_map[fe_id][sess_type][be_id];
1509 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1510 if (test_bit(j, &copp)) {
1511 copp_idx = j;
1512 break;
1513 }
1514 }
1515
1516 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1517 __func__,
1518 fe_id, be_id, msm_bedais[be_id].channel,
1519 copp_idx);
1520 ret = adm_programable_channel_mixer(
1521 msm_bedais[be_id].port_id,
1522 copp_idx, dspst_id, sess_type,
1523 channel_mixer + fe_id, i);
1524 }
1525 }
1526
1527 return ret;
1528}
1529
1530int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1531 int dspst_id, int stream_type)
1532{
1533 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1534 struct route_payload payload;
1535 u32 channels, sample_rate;
1536 uint16_t bits_per_sample = 16;
1537 uint32_t passthr_mode = LEGACY_PCM;
1538 int ret = 0;
1539
1540 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1541 /* bad ID assigned in machine driver */
1542 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1543 return -EINVAL;
1544 }
1545
1546 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1547 session_type = SESSION_TYPE_RX;
1548 path_type = ADM_PATH_PLAYBACK;
1549 port_type = MSM_AFE_PORT_TYPE_RX;
1550 } else {
1551 session_type = SESSION_TYPE_TX;
1552 path_type = ADM_PATH_LIVE_REC;
1553 port_type = MSM_AFE_PORT_TYPE_TX;
1554 }
1555
1556 mutex_lock(&routing_lock);
1557
1558 payload.num_copps = 0; /* only RX needs to use payload */
1559 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1560 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
1561
1562 /* re-enable EQ if active */
1563 msm_qti_pp_send_eq_values(fedai_id);
1564 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1565 if (!is_be_dai_extproc(i) &&
1566 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1567 (msm_bedais[i].active) &&
1568 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1569 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1570 /*
1571 * check if ADM needs to be configured with different
1572 * channel mapping than backend
1573 */
1574 if (!msm_bedais[i].adm_override_ch)
1575 channels = msm_bedais[i].channel;
1576 else
1577 channels = msm_bedais[i].adm_override_ch;
1578 msm_bedais[i].passthr_mode[fedai_id] =
1579 LEGACY_PCM;
1580
1581 bits_per_sample = msm_routing_get_bit_width(
1582 msm_bedais[i].format);
1583
1584 app_type =
1585 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1586 if (app_type) {
1587 app_type_idx =
1588 msm_pcm_routing_get_app_type_idx(app_type);
1589 sample_rate =
1590 fe_dai_app_type_cfg[fedai_id][session_type][i]
1591 .sample_rate;
1592 bits_per_sample =
1593 app_type_cfg[app_type_idx].bit_width;
1594 } else
1595 sample_rate = msm_bedais[i].sample_rate;
1596
1597 acdb_dev_id =
1598 fe_dai_app_type_cfg[fedai_id][session_type][i]
1599 .acdb_dev_id;
1600 topology = msm_routing_get_adm_topology(fedai_id,
1601 session_type,
1602 i);
1603 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1604 sample_rate, channels, topology,
1605 perf_mode, bits_per_sample,
1606 app_type, acdb_dev_id);
1607 if ((copp_idx < 0) ||
1608 (copp_idx >= MAX_COPPS_PER_PORT)) {
1609 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001610 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301611 mutex_unlock(&routing_lock);
1612 return -EINVAL;
1613 }
1614 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1615 __func__, fedai_id, session_type, i);
1616 set_bit(copp_idx,
1617 &session_copp_map[fedai_id][session_type][i]);
1618
1619 if (msm_is_resample_needed(
1620 sample_rate,
1621 msm_bedais[i].sample_rate))
1622 adm_copp_mfc_cfg(
1623 msm_bedais[i].port_id, copp_idx,
1624 msm_bedais[i].sample_rate);
1625
1626 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1627 unsigned long copp =
1628 session_copp_map[fedai_id][session_type][i];
1629 if (test_bit(j, &copp)) {
1630 payload.port_id[num_copps] =
1631 msm_bedais[i].port_id;
1632 payload.copp_idx[num_copps] = j;
1633 payload.app_type[num_copps] =
1634 fe_dai_app_type_cfg
1635 [fedai_id][session_type]
1636 [i].app_type;
1637 payload.acdb_dev_id[num_copps] =
1638 fe_dai_app_type_cfg
1639 [fedai_id][session_type]
1640 [i].acdb_dev_id;
1641 payload.sample_rate[num_copps] =
1642 fe_dai_app_type_cfg
1643 [fedai_id][session_type]
1644 [i].sample_rate;
1645 num_copps++;
1646 }
1647 }
1648 if ((perf_mode == LEGACY_PCM_MODE) &&
1649 (msm_bedais[i].passthr_mode[fedai_id] ==
1650 LEGACY_PCM))
1651 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
1652 copp_idx, topology,
1653 channels);
1654 }
1655 }
1656 if (num_copps) {
1657 payload.num_copps = num_copps;
1658 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1659 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1660 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1661 }
1662
1663 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1664 dspst_id, stream_type);
1665 mutex_unlock(&routing_lock);
1666 return ret;
1667}
1668
1669int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1670 int dspst_id, int stream_type,
1671 struct msm_pcm_routing_evt event_info)
1672{
1673 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1674 stream_type)) {
1675 pr_err("%s: failed to reg phy stream\n", __func__);
1676 return -EINVAL;
1677 }
1678
1679 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1680 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1681 else
1682 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1683 return 0;
1684}
1685
1686void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1687{
1688 int i, port_type, session_type, path_type, topology;
1689 struct msm_pcm_routing_fdai_data *fdai;
1690
1691 if (!is_mm_lsm_fe_id(fedai_id)) {
1692 /* bad ID assigned in machine driver */
1693 pr_err("%s: bad MM ID\n", __func__);
1694 return;
1695 }
1696
1697 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1698 port_type = MSM_AFE_PORT_TYPE_RX;
1699 session_type = SESSION_TYPE_RX;
1700 path_type = ADM_PATH_PLAYBACK;
1701 } else {
1702 port_type = MSM_AFE_PORT_TYPE_TX;
1703 session_type = SESSION_TYPE_TX;
1704 path_type = ADM_PATH_LIVE_REC;
1705 }
1706
1707 mutex_lock(&routing_lock);
1708 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1709 if (!is_be_dai_extproc(i) &&
1710 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1711 (msm_bedais[i].active) &&
1712 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1713 int idx;
1714 unsigned long copp =
1715 session_copp_map[fedai_id][session_type][i];
1716 fdai = &fe_dai_map[fedai_id][session_type];
1717
1718 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1719 if (test_bit(idx, &copp))
1720 break;
1721
1722 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1723 pr_debug("%s: copp idx is invalid, exiting\n",
1724 __func__);
1725 continue;
1726 }
1727 topology = adm_get_topology_for_port_copp_idx(
1728 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001729 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301730 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1731 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1732 __func__, copp, fedai_id, session_type, i);
1733 clear_bit(idx,
1734 &session_copp_map[fedai_id][session_type][i]);
1735 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1736 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1737 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1738 (msm_bedais[i].passthr_mode[fedai_id] ==
1739 LEGACY_PCM))
1740 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1741 topology);
1742 }
1743 }
1744
1745 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1746 fe_dai_map[fedai_id][session_type].be_srate = 0;
1747 mutex_unlock(&routing_lock);
1748}
1749
1750/* Check if FE/BE route is set */
1751static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1752{
1753 bool rc = false;
1754
1755 if (!is_mm_lsm_fe_id(fe_id)) {
1756 /* recheck FE ID in the mixer control defined in this file */
1757 pr_err("%s: bad MM ID\n", __func__);
1758 return rc;
1759 }
1760
1761 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1762 rc = true;
1763
1764 return rc;
1765}
1766
1767static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1768{
1769 int session_type, path_type, topology;
1770 u32 channels, sample_rate;
1771 uint16_t bits_per_sample = 16;
1772 struct msm_pcm_routing_fdai_data *fdai;
1773 uint32_t passthr_mode;
1774 bool is_lsm;
1775
1776 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1777
1778 if (!is_mm_lsm_fe_id(val)) {
1779 /* recheck FE ID in the mixer control defined in this file */
1780 pr_err("%s: bad MM ID\n", __func__);
1781 return;
1782 }
1783
1784 if (!route_check_fe_id_adm_support(val)) {
1785 /* ignore adm open if not supported for fe_id */
1786 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1787 return;
1788 }
1789
1790 passthr_mode = msm_bedais[reg].passthr_mode[val];
1791 if (afe_get_port_type(msm_bedais[reg].port_id) ==
1792 MSM_AFE_PORT_TYPE_RX) {
1793 session_type = SESSION_TYPE_RX;
1794 if (passthr_mode != LEGACY_PCM)
1795 path_type = ADM_PATH_COMPRESSED_RX;
1796 else
1797 path_type = ADM_PATH_PLAYBACK;
1798 } else {
1799 session_type = SESSION_TYPE_TX;
Ralf Herzc8701f72018-06-20 11:37:35 +02001800 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301801 path_type = ADM_PATH_COMPRESSED_TX;
1802 else
1803 path_type = ADM_PATH_LIVE_REC;
1804 }
1805 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1806 (val <= MSM_FRONTEND_DAI_LSM8);
1807
1808 mutex_lock(&routing_lock);
1809 if (set) {
1810 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1811 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1812 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1813 voc_start_playback(set, msm_bedais[reg].port_id);
1814
1815 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1816 fdai = &fe_dai_map[val][session_type];
1817 if (msm_bedais[reg].active && fdai->strm_id !=
1818 INVALID_SESSION) {
1819 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1820 /*
1821 * check if ADM needs to be configured with different
1822 * channel mapping than backend
1823 */
1824 if (!msm_bedais[reg].adm_override_ch)
1825 channels = msm_bedais[reg].channel;
1826 else
1827 channels = msm_bedais[reg].adm_override_ch;
1828 if (session_type == SESSION_TYPE_TX &&
1829 fdai->be_srate &&
1830 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1831 pr_debug("%s: flush strm %d diff BE rates\n",
1832 __func__, fdai->strm_id);
1833
1834 if (fdai->event_info.event_func)
1835 fdai->event_info.event_func(
1836 MSM_PCM_RT_EVT_BUF_RECFG,
1837 fdai->event_info.priv_data);
1838 fdai->be_srate = 0; /* might not need it */
1839 }
1840
1841 bits_per_sample = msm_routing_get_bit_width(
1842 msm_bedais[reg].format);
1843
1844 app_type =
1845 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1846 if (app_type && is_lsm) {
1847 app_type_idx =
1848 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1849 sample_rate =
1850 fe_dai_app_type_cfg[val][session_type][reg]
1851 .sample_rate;
1852 bits_per_sample =
1853 lsm_app_type_cfg[app_type_idx].bit_width;
1854 } else if (app_type) {
1855 app_type_idx =
1856 msm_pcm_routing_get_app_type_idx(app_type);
1857 sample_rate =
1858 fe_dai_app_type_cfg[val][session_type][reg]
1859 .sample_rate;
1860 bits_per_sample =
1861 app_type_cfg[app_type_idx].bit_width;
1862 } else
1863 sample_rate = msm_bedais[reg].sample_rate;
1864
1865 topology = msm_routing_get_adm_topology(val,
1866 session_type,
1867 reg);
1868 acdb_dev_id =
1869 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1870 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1871 sample_rate, channels, topology,
1872 fdai->perf_mode, bits_per_sample,
1873 app_type, acdb_dev_id);
1874 if ((copp_idx < 0) ||
1875 (copp_idx >= MAX_COPPS_PER_PORT)) {
1876 pr_err("%s: adm open failed\n", __func__);
1877 mutex_unlock(&routing_lock);
1878 return;
1879 }
1880 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1881 __func__, val, session_type, reg);
1882 set_bit(copp_idx,
1883 &session_copp_map[val][session_type][reg]);
1884
1885 if (msm_is_resample_needed(
1886 sample_rate,
1887 msm_bedais[reg].sample_rate))
1888 adm_copp_mfc_cfg(
1889 msm_bedais[reg].port_id, copp_idx,
1890 msm_bedais[reg].sample_rate);
1891
1892 if (session_type == SESSION_TYPE_RX &&
1893 fdai->event_info.event_func)
1894 fdai->event_info.event_func(
1895 MSM_PCM_RT_EVT_DEVSWITCH,
1896 fdai->event_info.priv_data);
1897
1898 msm_pcm_routing_build_matrix(val, session_type,
1899 path_type,
1900 fdai->perf_mode,
1901 passthr_mode);
1902 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1903 (passthr_mode == LEGACY_PCM))
1904 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1905 copp_idx, topology,
1906 channels);
1907 }
1908 } else {
1909 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1910 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1911 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1912 voc_start_playback(set, msm_bedais[reg].port_id);
1913 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
1914 fdai = &fe_dai_map[val][session_type];
1915 if (msm_bedais[reg].active && fdai->strm_id !=
1916 INVALID_SESSION) {
1917 int idx;
1918 int port_id;
1919 unsigned long copp =
1920 session_copp_map[val][session_type][reg];
1921 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1922 if (test_bit(idx, &copp))
1923 break;
1924
1925 port_id = msm_bedais[reg].port_id;
1926 topology = adm_get_topology_for_port_copp_idx(port_id,
1927 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001928 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301929 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1930 idx);
1931 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1932 __func__, copp, val, session_type, reg,
1933 topology);
1934 clear_bit(idx,
1935 &session_copp_map[val][session_type][reg]);
1936 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1937 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1938 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1939 (passthr_mode == LEGACY_PCM))
1940 msm_pcm_routing_deinit_pp(
1941 msm_bedais[reg].port_id,
1942 topology);
1943 msm_pcm_routing_build_matrix(val, session_type,
1944 path_type,
1945 fdai->perf_mode,
1946 passthr_mode);
1947 }
1948 }
1949 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1950 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1951 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1952
1953 mutex_unlock(&routing_lock);
1954}
1955
1956static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1957 struct snd_ctl_elem_value *ucontrol)
1958{
1959 struct soc_mixer_control *mc =
1960 (struct soc_mixer_control *)kcontrol->private_value;
1961
Meng Wang05d5e9a2018-03-28 16:45:03 +08001962 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301963 ucontrol->value.integer.value[0] = 1;
1964 else
1965 ucontrol->value.integer.value[0] = 0;
1966
Meng Wang05d5e9a2018-03-28 16:45:03 +08001967 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301968 ucontrol->value.integer.value[0]);
1969
1970 return 0;
1971}
1972
1973static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1974 struct snd_ctl_elem_value *ucontrol)
1975{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301976 struct snd_soc_dapm_widget *widget =
1977 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301978 struct soc_mixer_control *mc =
1979 (struct soc_mixer_control *)kcontrol->private_value;
1980 struct snd_soc_dapm_update *update = NULL;
1981
1982 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001983 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1984 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301985 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1986 update);
1987 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001988 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1989 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301990 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1991 update);
1992 }
1993
1994 return 1;
1995}
1996
1997static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
1998 struct snd_ctl_elem_value *ucontrol)
1999{
2000 struct soc_mixer_control *mc =
2001 (struct soc_mixer_control *)kcontrol->private_value;
2002
Meng Wang05d5e9a2018-03-28 16:45:03 +08002003 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302004 ucontrol->value.integer.value[0] = 1;
2005 else
2006 ucontrol->value.integer.value[0] = 0;
2007
Meng Wang05d5e9a2018-03-28 16:45:03 +08002008 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302009 ucontrol->value.integer.value[0]);
2010
2011 return 0;
2012}
2013
2014static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2015 struct snd_ctl_elem_value *ucontrol)
2016{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302017 struct snd_soc_dapm_widget *widget =
2018 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302019 struct soc_mixer_control *mc =
2020 (struct soc_mixer_control *)kcontrol->private_value;
2021 struct snd_soc_dapm_update *update = NULL;
2022
Meng Wang05d5e9a2018-03-28 16:45:03 +08002023 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302024 ucontrol->value.integer.value[0]);
2025
2026 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002027 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2028 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302029 snd_soc_dapm_mixer_update_power(widget->dapm,
2030 kcontrol, 1, update);
2031 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002032 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2033 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302034 snd_soc_dapm_mixer_update_power(widget->dapm,
2035 kcontrol, 0, update);
2036 }
2037
2038 return 1;
2039}
2040
2041static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2042{
2043 u32 session_id = 0;
2044 u16 path_type;
2045 struct media_format_info voc_be_media_format;
2046
2047 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2048
2049 session_id = msm_pcm_routing_get_voc_sessionid(val);
2050
2051 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2052 __func__, val, session_id);
2053
2054 mutex_lock(&routing_lock);
2055
2056 if (set)
2057 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2058 else
2059 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2060
2061 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2062 afe_get_port_type(msm_bedais[reg].port_id) ==
2063 MSM_AFE_PORT_TYPE_RX) {
2064 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2065 __func__, set, msm_bedais[reg].port_id);
2066 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2067 }
2068
2069 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2070 MSM_AFE_PORT_TYPE_RX)
2071 path_type = RX_PATH;
2072 else
2073 path_type = TX_PATH;
2074
2075 if (set) {
2076 if (msm_bedais[reg].active) {
2077 voc_set_route_flag(session_id, path_type, 1);
2078
2079 memset(&voc_be_media_format, 0,
2080 sizeof(struct media_format_info));
2081
2082 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2083 voc_be_media_format.num_channels =
2084 msm_bedais[reg].channel;
2085 voc_be_media_format.sample_rate =
2086 msm_bedais[reg].sample_rate;
2087 voc_be_media_format.bits_per_sample =
2088 msm_bedais[reg].format;
2089 /* Defaulting this to 1 for voice call usecases */
2090 voc_be_media_format.channel_mapping[0] = 1;
2091
2092 voc_set_device_config(session_id, path_type,
2093 &voc_be_media_format);
2094
2095 if (voc_get_route_flag(session_id, TX_PATH) &&
2096 voc_get_route_flag(session_id, RX_PATH))
2097 voc_enable_device(session_id);
2098 } else {
2099 pr_debug("%s BE is not active\n", __func__);
2100 }
2101 } else {
2102 voc_set_route_flag(session_id, path_type, 0);
2103 voc_disable_device(session_id);
2104 }
2105
2106 mutex_unlock(&routing_lock);
2107
2108}
2109
2110static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2111 struct snd_ctl_elem_value *ucontrol)
2112{
2113 struct soc_mixer_control *mc =
2114 (struct soc_mixer_control *)kcontrol->private_value;
2115
2116 mutex_lock(&routing_lock);
2117
Meng Wang05d5e9a2018-03-28 16:45:03 +08002118 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302119 ucontrol->value.integer.value[0] = 1;
2120 else
2121 ucontrol->value.integer.value[0] = 0;
2122
2123 mutex_unlock(&routing_lock);
2124
Meng Wang05d5e9a2018-03-28 16:45:03 +08002125 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302126 ucontrol->value.integer.value[0]);
2127
2128 return 0;
2129}
2130
2131static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2132 struct snd_ctl_elem_value *ucontrol)
2133{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302134 struct snd_soc_dapm_widget *widget =
2135 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302136 struct soc_mixer_control *mc =
2137 (struct soc_mixer_control *)kcontrol->private_value;
2138 struct snd_soc_dapm_update *update = NULL;
2139
2140 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002141 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302142 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2143 update);
2144 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002145 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302146 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2147 update);
2148 }
2149
2150 return 1;
2151}
2152
2153static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2154 struct snd_ctl_elem_value *ucontrol)
2155{
2156 struct soc_mixer_control *mc =
2157 (struct soc_mixer_control *)kcontrol->private_value;
2158
2159 mutex_lock(&routing_lock);
2160
Meng Wang05d5e9a2018-03-28 16:45:03 +08002161 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302162 ucontrol->value.integer.value[0] = 1;
2163 else
2164 ucontrol->value.integer.value[0] = 0;
2165
2166 mutex_unlock(&routing_lock);
2167
Meng Wang05d5e9a2018-03-28 16:45:03 +08002168 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302169 ucontrol->value.integer.value[0]);
2170
2171 return 0;
2172}
2173
2174static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2175 struct snd_ctl_elem_value *ucontrol)
2176{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302177 struct snd_soc_dapm_widget *widget =
2178 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302179 struct soc_mixer_control *mc =
2180 (struct soc_mixer_control *)kcontrol->private_value;
2181 struct snd_soc_dapm_update *update = NULL;
2182
2183 if (ucontrol->value.integer.value[0]) {
2184 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002185 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302186 mutex_unlock(&routing_lock);
2187
2188 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2189 update);
2190 } else {
2191 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002192 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302193 mutex_unlock(&routing_lock);
2194
2195 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2196 update);
2197 }
2198
Meng Wang05d5e9a2018-03-28 16:45:03 +08002199 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302200 ucontrol->value.integer.value[0]);
2201
2202 return 1;
2203}
2204
2205/*
2206 * Return the mapping between port ID and backend ID to enable the AFE callback
2207 * to determine the acdb_dev_id from the port id
2208 */
2209int msm_pcm_get_be_id_from_port_id(int port_id)
2210{
2211 int i;
2212 int be_id = -EINVAL;
2213
2214 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2215 if (msm_bedais[i].port_id == port_id) {
2216 be_id = i;
2217 break;
2218 }
2219 }
2220
2221 return be_id;
2222}
2223
2224/*
2225 * Return the registered dev_acdb_id given a port ID to enable identifying the
2226 * correct AFE calibration information by comparing the header information.
2227 */
2228static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2229{
2230 int acdb_id = -EINVAL;
2231 int i = 0;
2232 int session;
2233 int port_type = afe_get_port_type(port_id);
2234 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2235
2236 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2237 __func__, port_id, be_id, port_type);
2238
2239 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2240 session = SESSION_TYPE_TX;
2241 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2242 session = SESSION_TYPE_RX;
2243 } else {
2244 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2245 acdb_id = -EINVAL;
2246 goto exit;
2247 }
2248
2249 if (be_id < 0) {
2250 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2251 goto exit;
2252 }
2253
2254 mutex_lock(&routing_lock);
2255 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2256 MSM_FRONTEND_DAI_MAX);
2257 if (i < MSM_FRONTEND_DAI_MAX)
2258 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2259
2260 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2261 __func__, i, session, be_id, acdb_id);
2262 mutex_unlock(&routing_lock);
2263exit:
2264 return acdb_id;
2265}
2266
2267static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2268 struct snd_ctl_elem_value *ucontrol)
2269{
2270 ucontrol->value.integer.value[0] = fm_switch_enable;
2271 pr_debug("%s: FM Switch enable %ld\n", __func__,
2272 ucontrol->value.integer.value[0]);
2273 return 0;
2274}
2275
2276static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2277 struct snd_ctl_elem_value *ucontrol)
2278{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302279 struct snd_soc_dapm_widget *widget =
2280 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302281 struct snd_soc_dapm_update *update = NULL;
2282
2283 pr_debug("%s: FM Switch enable %ld\n", __func__,
2284 ucontrol->value.integer.value[0]);
2285 if (ucontrol->value.integer.value[0])
2286 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2287 update);
2288 else
2289 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2290 update);
2291 fm_switch_enable = ucontrol->value.integer.value[0];
2292 return 1;
2293}
2294
2295static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2296 struct snd_ctl_elem_value *ucontrol)
2297{
2298 ucontrol->value.integer.value[0] = hfp_switch_enable;
2299 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2300 ucontrol->value.integer.value[0]);
2301 return 0;
2302}
2303
2304static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2305 struct snd_ctl_elem_value *ucontrol)
2306{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302307 struct snd_soc_dapm_widget *widget =
2308 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302309 struct snd_soc_dapm_update *update = NULL;
2310
2311 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2312 ucontrol->value.integer.value[0]);
2313 if (ucontrol->value.integer.value[0])
2314 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2315 1, update);
2316 else
2317 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2318 0, update);
2319 hfp_switch_enable = ucontrol->value.integer.value[0];
2320 return 1;
2321}
2322
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002323static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2324 struct snd_ctl_elem_value *ucontrol)
2325{
2326 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2327 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2328 ucontrol->value.integer.value[0]);
2329 return 0;
2330}
2331
2332static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2333 struct snd_ctl_elem_value *ucontrol)
2334{
2335 struct snd_soc_dapm_widget *widget =
2336 snd_soc_dapm_kcontrol_widget(kcontrol);
2337 struct snd_soc_dapm_update *update = NULL;
2338
2339 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2340 ucontrol->value.integer.value[0]);
2341 a2dp_switch_enable = ucontrol->value.integer.value[0];
2342 if (a2dp_switch_enable)
2343 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2344 1, update);
2345 else
2346 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2347 0, update);
2348 return 1;
2349}
2350
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302351static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2352 struct snd_ctl_elem_value *ucontrol)
2353{
2354 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2355 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2356 ucontrol->value.integer.value[0]);
2357 return 0;
2358}
2359
2360static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2361 struct snd_ctl_elem_value *ucontrol)
2362{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302363 struct snd_soc_dapm_widget *widget =
2364 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302365 struct snd_soc_dapm_update *update = NULL;
2366
2367 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2368 ucontrol->value.integer.value[0]);
2369 if (ucontrol->value.integer.value[0])
2370 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2371 update);
2372 else
2373 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2374 update);
2375 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2376 return 1;
2377}
2378
2379static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2380 struct snd_ctl_elem_value *ucontrol)
2381{
2382 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2383 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2384 ucontrol->value.integer.value[0]);
2385 return 0;
2386}
2387
2388static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2389 struct snd_ctl_elem_value *ucontrol)
2390{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302391 struct snd_soc_dapm_widget *widget =
2392 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302393 struct snd_soc_dapm_update *update = NULL;
2394
2395 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2396 ucontrol->value.integer.value[0]);
2397 if (ucontrol->value.integer.value[0])
2398 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2399 update);
2400 else
2401 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2402 update);
2403 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2404 return 1;
2405}
2406
2407static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2408 struct snd_ctl_elem_value *ucontrol)
2409{
2410 ucontrol->value.integer.value[0] = usb_switch_enable;
2411 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2412 ucontrol->value.integer.value[0]);
2413 return 0;
2414}
2415
2416static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2417 struct snd_ctl_elem_value *ucontrol)
2418{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302419 struct snd_soc_dapm_widget *widget =
2420 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302421 struct snd_soc_dapm_update *update = NULL;
2422
2423 pr_debug("%s: USB Switch enable %ld\n", __func__,
2424 ucontrol->value.integer.value[0]);
2425 if (ucontrol->value.integer.value[0])
2426 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2427 1, update);
2428 else
2429 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2430 0, update);
2431 usb_switch_enable = ucontrol->value.integer.value[0];
2432 return 1;
2433}
2434
2435static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2436 struct snd_ctl_elem_value *ucontrol)
2437{
2438 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2439 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2440 ucontrol->value.integer.value[0]);
2441 return 0;
2442}
2443
2444static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2445 struct snd_ctl_elem_value *ucontrol)
2446{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302447 struct snd_soc_dapm_widget *widget =
2448 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302449 struct snd_soc_dapm_update *update = NULL;
2450
2451 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2452 ucontrol->value.integer.value[0]);
2453 if (ucontrol->value.integer.value[0])
2454 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2455 update);
2456 else
2457 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2458 update);
2459 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2460 return 1;
2461}
2462
2463static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2464 struct snd_ctl_elem_value *ucontrol)
2465{
2466 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2467 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2468 ucontrol->value.integer.value[0]);
2469 return 0;
2470}
2471
2472static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2473 struct snd_ctl_elem_value *ucontrol)
2474{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302475 struct snd_soc_dapm_widget *widget =
2476 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302477 struct snd_soc_dapm_update *update = NULL;
2478
2479 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2480 ucontrol->value.integer.value[0]);
2481 if (ucontrol->value.integer.value[0])
2482 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2483 update);
2484 else
2485 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2486 update);
2487 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2488 return 1;
2489}
2490
2491static int msm_routing_get_tert_mi2s_switch_mixer(
2492 struct snd_kcontrol *kcontrol,
2493 struct snd_ctl_elem_value *ucontrol)
2494{
2495 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2496 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2497 ucontrol->value.integer.value[0]);
2498 return 0;
2499}
2500
2501static int msm_routing_put_tert_mi2s_switch_mixer(
2502 struct snd_kcontrol *kcontrol,
2503 struct snd_ctl_elem_value *ucontrol)
2504{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302505 struct snd_soc_dapm_widget *widget =
2506 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302507 struct snd_soc_dapm_update *update = NULL;
2508
2509 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2510 ucontrol->value.integer.value[0]);
2511 if (ucontrol->value.integer.value[0])
2512 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2513 update);
2514 else
2515 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2516 update);
2517 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2518 return 1;
2519}
2520
2521static int msm_routing_get_quat_mi2s_switch_mixer(
2522 struct snd_kcontrol *kcontrol,
2523 struct snd_ctl_elem_value *ucontrol)
2524{
2525 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2526 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2527 ucontrol->value.integer.value[0]);
2528 return 0;
2529}
2530
2531static int msm_routing_put_quat_mi2s_switch_mixer(
2532 struct snd_kcontrol *kcontrol,
2533 struct snd_ctl_elem_value *ucontrol)
2534{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302535 struct snd_soc_dapm_widget *widget =
2536 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302537 struct snd_soc_dapm_update *update = NULL;
2538
2539 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2540 ucontrol->value.integer.value[0]);
2541 if (ucontrol->value.integer.value[0])
2542 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2543 update);
2544 else
2545 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2546 update);
2547 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2548 return 1;
2549}
2550
Rohit Kumara5077932017-09-10 22:05:05 +05302551static int msm_routing_get_quin_mi2s_switch_mixer(
2552 struct snd_kcontrol *kcontrol,
2553 struct snd_ctl_elem_value *ucontrol)
2554{
2555 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2556 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2557 ucontrol->value.integer.value[0]);
2558 return 0;
2559}
2560
2561static int msm_routing_put_quin_mi2s_switch_mixer(
2562 struct snd_kcontrol *kcontrol,
2563 struct snd_ctl_elem_value *ucontrol)
2564{
2565 struct snd_soc_dapm_widget *widget =
2566 snd_soc_dapm_kcontrol_widget(kcontrol);
2567 struct snd_soc_dapm_update *update = NULL;
2568
2569 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2570 ucontrol->value.integer.value[0]);
2571 if (ucontrol->value.integer.value[0])
2572 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2573 update);
2574 else
2575 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2576 update);
2577 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2578 return 1;
2579}
2580
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302581static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2582 struct snd_ctl_elem_value *ucontrol)
2583{
2584 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2585 pr_debug("%s: FM Switch enable %ld\n", __func__,
2586 ucontrol->value.integer.value[0]);
2587 return 0;
2588}
2589
2590static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2591 struct snd_ctl_elem_value *ucontrol)
2592{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302593 struct snd_soc_dapm_widget *widget =
2594 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302595 struct snd_soc_dapm_update *update = NULL;
2596
2597 pr_debug("%s: FM Switch enable %ld\n", __func__,
2598 ucontrol->value.integer.value[0]);
2599 if (ucontrol->value.integer.value[0])
2600 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2601 update);
2602 else
2603 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2604 update);
2605 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2606 return 1;
2607}
2608
2609static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2610 struct snd_ctl_elem_value *ucontrol)
2611{
2612 ucontrol->value.integer.value[0] = lsm_port_index;
2613 return 0;
2614}
2615
2616static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2617 struct snd_ctl_elem_value *ucontrol)
2618{
2619 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2620 int mux = ucontrol->value.enumerated.item[0];
2621 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2622
2623 if (mux >= e->items) {
2624 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2625 return -EINVAL;
2626 }
2627
2628 pr_debug("%s: LSM enable %ld\n", __func__,
2629 ucontrol->value.integer.value[0]);
2630 switch (ucontrol->value.integer.value[0]) {
2631 case 1:
2632 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2633 break;
2634 case 2:
2635 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2636 break;
2637 case 3:
2638 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2639 break;
2640 case 4:
2641 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2642 break;
2643 case 5:
2644 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2645 break;
2646 case 6:
2647 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2648 break;
2649 case 7:
2650 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2651 break;
2652 case 8:
2653 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2654 break;
2655 case 9:
2656 lsm_port = ADM_LSM_PORT_ID;
2657 break;
2658 case 10:
2659 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2660 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302661 case 11:
2662 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2663 break;
2664 case 12:
2665 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2666 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302667 default:
2668 pr_err("Default lsm port");
2669 break;
2670 }
2671 set_lsm_port(lsm_port);
2672 lsm_port_index = ucontrol->value.integer.value[0];
2673
2674 return 0;
2675}
2676
2677static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2678 struct snd_ctl_elem_value *ucontrol)
2679{
2680 int i;
2681 u16 port_id;
2682 enum afe_mad_type mad_type;
2683
2684 pr_debug("%s: enter\n", __func__);
2685 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2686 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2687 strlen(lsm_port_text[i])))
2688 break;
2689
2690 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2691 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2692 return -EINVAL;
2693 }
2694
2695 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2696
2697 /*Check for Tertiary/Quaternary/INT3 TX port*/
2698 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2699 strlen(lsm_port_text[7])))
2700 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2701
2702 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2703 strlen(lsm_port_text[8])))
2704 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2705
2706 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2707 strlen(lsm_port_text[10])))
2708 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2709
2710 mad_type = afe_port_get_mad_type(port_id);
2711 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2712 mad_type);
2713 switch (mad_type) {
2714 case MAD_HW_NONE:
2715 ucontrol->value.integer.value[0] = MADNONE;
2716 break;
2717 case MAD_HW_AUDIO:
2718 ucontrol->value.integer.value[0] = MADAUDIO;
2719 break;
2720 case MAD_HW_BEACON:
2721 ucontrol->value.integer.value[0] = MADBEACON;
2722 break;
2723 case MAD_HW_ULTRASOUND:
2724 ucontrol->value.integer.value[0] = MADULTRASOUND;
2725 break;
2726 case MAD_SW_AUDIO:
2727 ucontrol->value.integer.value[0] = MADSWAUDIO;
2728 break;
2729 default:
2730 WARN(1, "Unknown\n");
2731 return -EINVAL;
2732 }
2733 return 0;
2734}
2735
2736static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2737 struct snd_ctl_elem_value *ucontrol)
2738{
2739 int i;
2740 u16 port_id;
2741 enum afe_mad_type mad_type;
2742
2743 pr_debug("%s: enter\n", __func__);
2744 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2745 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2746 strlen(lsm_port_text[i])))
2747 break;
2748
2749 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2750 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2751 return -EINVAL;
2752 }
2753
2754 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2755 switch (ucontrol->value.integer.value[0]) {
2756 case MADNONE:
2757 mad_type = MAD_HW_NONE;
2758 break;
2759 case MADAUDIO:
2760 mad_type = MAD_HW_AUDIO;
2761 break;
2762 case MADBEACON:
2763 mad_type = MAD_HW_BEACON;
2764 break;
2765 case MADULTRASOUND:
2766 mad_type = MAD_HW_ULTRASOUND;
2767 break;
2768 case MADSWAUDIO:
2769 mad_type = MAD_SW_AUDIO;
2770 break;
2771 default:
2772 WARN(1, "Unknown\n");
2773 return -EINVAL;
2774 }
2775
2776 /*Check for Tertiary/Quaternary/INT3 TX port*/
2777 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2778 strlen(lsm_port_text[7])))
2779 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2780
2781 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2782 strlen(lsm_port_text[8])))
2783 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2784
2785 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2786 strlen(lsm_port_text[10])))
2787 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2788
2789 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2790 mad_type);
2791 return afe_port_set_mad_type(port_id, mad_type);
2792}
2793
2794static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2795
2796static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2797 adm_override_chs_text);
2798
2799static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2800{
2801 int backend_id;
2802
2803 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2804 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2805 } else {
2806 pr_err("%s: unsupported backend id: %s",
2807 __func__, kcontrol->id.name);
2808 return -EINVAL;
2809 }
2810
2811 return backend_id;
2812}
2813static int msm_routing_adm_channel_config_get(
2814 struct snd_kcontrol *kcontrol,
2815 struct snd_ctl_elem_value *ucontrol)
2816{
2817 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2818
2819 if (backend_id >= 0) {
2820 mutex_lock(&routing_lock);
2821 ucontrol->value.integer.value[0] =
2822 msm_bedais[backend_id].adm_override_ch;
2823 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2824 ucontrol->value.integer.value[0], backend_id);
2825 mutex_unlock(&routing_lock);
2826 }
2827
2828 return 0;
2829}
2830
2831static int msm_routing_adm_channel_config_put(
2832 struct snd_kcontrol *kcontrol,
2833 struct snd_ctl_elem_value *ucontrol)
2834{
2835 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2836
2837 if (backend_id >= 0) {
2838 mutex_lock(&routing_lock);
2839 msm_bedais[backend_id].adm_override_ch =
2840 ucontrol->value.integer.value[0];
2841 pr_debug("%s:updating BE :%d adm channels: %d\n",
2842 __func__, backend_id,
2843 msm_bedais[backend_id].adm_override_ch);
2844 mutex_unlock(&routing_lock);
2845 }
2846
2847 return 0;
2848}
2849
2850static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2851 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2852 msm_routing_adm_channel_config_get,
2853 msm_routing_adm_channel_config_put),
2854};
2855
2856static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2857 struct snd_ctl_elem_value *ucontrol)
2858{
2859
2860 mutex_lock(&routing_lock);
2861 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2862 mutex_unlock(&routing_lock);
2863 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2864 ucontrol->value.integer.value[0]);
2865 return 0;
2866};
2867
2868static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2869 struct snd_ctl_elem_value *ucontrol)
2870{
2871 struct aanc_data aanc_info;
2872
2873 mutex_lock(&routing_lock);
2874 memset(&aanc_info, 0x00, sizeof(aanc_info));
2875 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2876 ucontrol->value.integer.value[0]);
2877 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2878 if (ucontrol->value.integer.value[0] == 0) {
2879 aanc_info.aanc_active = false;
2880 aanc_info.aanc_tx_port = 0;
2881 aanc_info.aanc_rx_port = 0;
2882 } else {
2883 aanc_info.aanc_active = true;
2884 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2885 aanc_info.aanc_tx_port =
2886 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2887 }
2888 afe_set_aanc_info(&aanc_info);
2889 mutex_unlock(&routing_lock);
2890 return 0;
2891};
2892static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2893 struct snd_ctl_elem_value *ucontrol)
2894{
2895 int idx = 0, shift = 0;
2896 struct soc_mixer_control *mc =
2897 (struct soc_mixer_control *)kcontrol->private_value;
2898
Meng Wang05d5e9a2018-03-28 16:45:03 +08002899 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2900 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302901
2902 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2903 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2904 return -EINVAL;
2905 }
2906
2907 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002908 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302909 ucontrol->value.integer.value[0] = 1;
2910 else
2911 ucontrol->value.integer.value[0] = 0;
2912
Meng Wang05d5e9a2018-03-28 16:45:03 +08002913 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302914 ucontrol->value.integer.value[0]);
2915
2916 return 0;
2917}
2918
2919static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2920 struct snd_ctl_elem_value *ucontrol)
2921{
2922 int idx = 0, shift = 0;
2923 struct soc_mixer_control *mc =
2924 (struct soc_mixer_control *)kcontrol->private_value;
2925
Meng Wang05d5e9a2018-03-28 16:45:03 +08002926 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2927 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302928
2929 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2930 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2931 return -EINVAL;
2932 }
2933
Meng Wang05d5e9a2018-03-28 16:45:03 +08002934 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2935 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302936 ucontrol->value.integer.value[0], idx, shift);
2937
2938 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002939 afe_loopback(1, msm_bedais[mc->shift].port_id,
2940 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302941 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002942 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302943 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002944 afe_loopback(0, msm_bedais[mc->shift].port_id,
2945 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302946 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002947 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302948 }
2949
2950 return 1;
2951}
2952
2953static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2954 struct snd_ctl_elem_value *ucontrol)
2955{
2956 u16 fe_id = 0;
2957
2958 fe_id = ((struct soc_mixer_control *)
2959 kcontrol->private_value)->shift;
2960 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2961 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2962 return -EINVAL;
2963 }
2964
2965 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2966
2967 return 0;
2968}
2969
2970static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2971 struct snd_ctl_elem_value *ucontrol)
2972{
2973 u16 fe_id = 0;
2974
2975 fe_id = ((struct soc_mixer_control *)
2976 kcontrol->private_value)->shift;
2977 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2978 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2979 return -EINVAL;
2980 }
2981
2982 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
2983
2984 return 1;
2985}
2986
2987static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
2988 struct snd_ctl_elem_value *ucontrol)
2989{
2990 u16 fe_id = 0;
2991
2992 fe_id = ((struct soc_multi_mixer_control *)
2993 kcontrol->private_value)->shift;
2994 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2995 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2996 return -EINVAL;
2997 }
2998
2999 ucontrol->value.integer.value[0] =
3000 channel_mixer[fe_id].output_channel;
3001 return 0;
3002}
3003
3004static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3005 struct snd_ctl_elem_value *ucontrol)
3006{
3007 u16 fe_id = 0;
3008
3009 fe_id = ((struct soc_multi_mixer_control *)
3010 kcontrol->private_value)->shift;
3011 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3012 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3013 return -EINVAL;
3014 }
3015
3016 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3017 fe_id,
3018 (unsigned int)(ucontrol->value.integer.value[0]));
3019 channel_mixer[fe_id].output_channel =
3020 (unsigned int)(ucontrol->value.integer.value[0]);
3021
3022 return 1;
3023}
3024
3025static const char *const ch_mixer[] = {"Disable", "Enable"};
3026
3027/* If new backend is added, need update this array */
3028static const char *const be_name[] = {
3029"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3030"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3031"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3032"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3033"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3034"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3035"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3036"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3037"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3038"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3039"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3040"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003041"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303042"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3043"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3044"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3045"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3046"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3047"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3048"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3049"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3050"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3051"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3052"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3053"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3054"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3055"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3056"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3057"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3058"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303059"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3060"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3061"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3062"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003063"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303064"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303065"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303066"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3067"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3068"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303069"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3070"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003071"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303072"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3073"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3074"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3075"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3076"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303077};
3078
3079static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3080 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3081static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3082 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3083static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3084 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3085static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3086 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3087
3088static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3089 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3090static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3091 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3092static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3093 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3094static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3095 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3096static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3097 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3098static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3099 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3100static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3101 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3102static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3103 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3104
3105static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3106 unsigned int channels,
3107 unsigned int items, const char *const names[])
3108{
3109 if (uinfo->value.enumerated.item >= items)
3110 uinfo->value.enumerated.item = items - 1;
3111
3112 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3113 sizeof(uinfo->value.enumerated.name),
3114 "ALSA: too long item name '%s'\n",
3115 names[uinfo->value.enumerated.item]);
3116 strlcpy(uinfo->value.enumerated.name,
3117 names[uinfo->value.enumerated.item],
3118 sizeof(uinfo->value.enumerated.name));
3119 return 0;
3120}
3121
3122static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3123 struct snd_ctl_elem_info *uinfo)
3124{
3125 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3126
3127 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3128 uinfo->count = 1;
3129
3130 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3131 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3132
3133 return 0;
3134}
3135static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3136 struct snd_ctl_elem_value *ucontrol)
3137{
3138 u16 fe_id = 0;
3139
3140 fe_id = ((struct soc_enum *)
3141 kcontrol->private_value)->shift_l;
3142 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3143 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3144 return -EINVAL;
3145 }
3146
3147 pr_debug("%s: FE %d %s\n", __func__,
3148 fe_id,
3149 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3150 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3151 return 0;
3152}
3153
3154static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3155 struct snd_ctl_elem_value *ucontrol)
3156{
3157 u16 fe_id = 0;
3158
3159 fe_id = ((struct soc_enum *)
3160 kcontrol->private_value)->shift_l;
3161 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3162 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3163 return -EINVAL;
3164 }
3165
3166 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3167 pr_debug("%s: %s FE %d\n", __func__,
3168 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3169 fe_id);
3170 return 0;
3171}
3172
3173static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3174 struct snd_ctl_elem_info *uinfo)
3175{
3176 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3177
3178 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3179 uinfo->count = 1;
3180
3181 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3182 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3183
3184 return 0;
3185}
3186
3187static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3188 struct snd_ctl_elem_value *ucontrol)
3189{
3190 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3191 u16 fe_id = 0, in_ch = 0;
3192
3193 fe_id = e->shift_l;
3194 in_ch = e->shift_r;
3195 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3196 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3197 return -EINVAL;
3198 }
3199 if (in_ch >= ADM_MAX_CHANNELS) {
3200 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3201 return -EINVAL;
3202 }
3203
3204 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3205 return 1;
3206}
3207
3208static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3209 struct snd_ctl_elem_value *ucontrol)
3210{
3211 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3212 u16 fe_id = 0, in_ch = 0;
3213
3214 fe_id = e->shift_l;
3215 in_ch = e->shift_r;
3216 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3217 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3218 return -EINVAL;
3219 }
3220 if (in_ch >= ADM_MAX_CHANNELS) {
3221 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3222 return -EINVAL;
3223 }
3224
3225 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3226 return 1;
3227}
3228
3229
3230static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3231 struct snd_ctl_elem_info *uinfo)
3232{
3233 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3234 uinfo->count = ADM_MAX_CHANNELS;
3235 uinfo->value.integer.min = 0;
3236 uinfo->value.integer.max = WEIGHT_0_DB;
3237
3238 return 0;
3239}
3240
3241static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3242 struct snd_ctl_elem_value *ucontrol)
3243{
3244 u16 fe_id = 0, out_ch = 0;
3245 int i, weight;
3246
3247 fe_id = ((struct soc_multi_mixer_control *)
3248 kcontrol->private_value)->shift;
3249 out_ch = ((struct soc_multi_mixer_control *)
3250 kcontrol->private_value)->rshift;
3251 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3252 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3253 return -EINVAL;
3254 }
3255 if (out_ch >= ADM_MAX_CHANNELS) {
3256 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3257 return -EINVAL;
3258 }
3259
3260 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3261 __func__, fe_id,
3262 ucontrol->value.integer.value[0],
3263 ucontrol->value.integer.value[1],
3264 ucontrol->value.integer.value[2],
3265 ucontrol->value.integer.value[3],
3266 ucontrol->value.integer.value[4],
3267 ucontrol->value.integer.value[5],
3268 ucontrol->value.integer.value[6],
3269 ucontrol->value.integer.value[7]);
3270
3271 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3272 weight = ucontrol->value.integer.value[i];
3273 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3274 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3275 __func__, fe_id, out_ch, i,
3276 channel_mixer[fe_id].channel_weight[out_ch][i]);
3277 }
3278
3279 return 0;
3280}
3281
3282static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3283 struct snd_ctl_elem_value *ucontrol)
3284{
3285 u16 fe_id = 0, out_ch = 0;
3286 int i;
3287
3288 fe_id = ((struct soc_multi_mixer_control *)
3289 kcontrol->private_value)->shift;
3290 out_ch = ((struct soc_multi_mixer_control *)
3291 kcontrol->private_value)->rshift;
3292 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3293 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3294 return -EINVAL;
3295 }
3296 if (out_ch >= ADM_MAX_CHANNELS) {
3297 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3298 return -EINVAL;
3299 }
3300
3301 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3302 ucontrol->value.integer.value[i] =
3303 channel_mixer[fe_id].channel_weight[out_ch][i];
3304
3305 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3306 __func__, fe_id,
3307 ucontrol->value.integer.value[0],
3308 ucontrol->value.integer.value[1],
3309 ucontrol->value.integer.value[2],
3310 ucontrol->value.integer.value[3],
3311 ucontrol->value.integer.value[4],
3312 ucontrol->value.integer.value[5],
3313 ucontrol->value.integer.value[6],
3314 ucontrol->value.integer.value[7]);
3315
3316 return 0;
3317}
3318
3319static const struct snd_kcontrol_new channel_mixer_controls[] = {
3320 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3321 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3322 msm_pcm_get_channel_rule_index,
3323 msm_pcm_put_channel_rule_index),
3324 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3325 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3326 msm_pcm_get_channel_rule_index,
3327 msm_pcm_put_channel_rule_index),
3328 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3329 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3330 msm_pcm_get_channel_rule_index,
3331 msm_pcm_put_channel_rule_index),
3332 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3333 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3334 msm_pcm_get_channel_rule_index,
3335 msm_pcm_put_channel_rule_index),
3336 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3337 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3338 msm_pcm_get_channel_rule_index,
3339 msm_pcm_put_channel_rule_index),
3340 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3341 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3342 msm_pcm_get_channel_rule_index,
3343 msm_pcm_put_channel_rule_index),
3344
3345 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3346 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3347 msm_pcm_get_out_chs,
3348 msm_pcm_put_out_chs),
3349 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3350 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3351 msm_pcm_get_out_chs,
3352 msm_pcm_put_out_chs),
3353 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3354 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3355 msm_pcm_get_out_chs,
3356 msm_pcm_put_out_chs),
3357 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3358 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3359 msm_pcm_get_out_chs,
3360 msm_pcm_put_out_chs),
3361 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3362 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3363 msm_pcm_get_out_chs,
3364 msm_pcm_put_out_chs),
3365 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3366 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3367 msm_pcm_get_out_chs,
3368 msm_pcm_put_out_chs),
3369 {
3370 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3371 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3372 .name = "MultiMedia1 Channel Mixer",
3373 .info = msm_pcm_channel_mixer_info,
3374 .get = msm_pcm_channel_mixer_get,
3375 .put = msm_pcm_channel_mixer_put,
3376 .private_value = (unsigned long)&(mm1_channel_mux)
3377 },
3378 {
3379 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3380 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3381 .name = "MultiMedia2 Channel Mixer",
3382 .info = msm_pcm_channel_mixer_info,
3383 .get = msm_pcm_channel_mixer_get,
3384 .put = msm_pcm_channel_mixer_put,
3385 .private_value = (unsigned long)&(mm2_channel_mux)
3386 },
3387 {
3388 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3389 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3390 .name = "MultiMedia3 Channel Mixer",
3391 .info = msm_pcm_channel_mixer_info,
3392 .get = msm_pcm_channel_mixer_get,
3393 .put = msm_pcm_channel_mixer_put,
3394 .private_value = (unsigned long)&(mm3_channel_mux)
3395 },
3396 {
3397 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3398 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3399 .name = "MultiMedia4 Channel Mixer",
3400 .info = msm_pcm_channel_mixer_info,
3401 .get = msm_pcm_channel_mixer_get,
3402 .put = msm_pcm_channel_mixer_put,
3403 .private_value = (unsigned long)&(mm4_channel_mux)
3404 },
3405 {
3406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3407 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3408 .name = "MultiMedia1 Output Channel1",
3409 .info = msm_pcm_channel_weight_info,
3410 .get = msm_pcm_channel_weight_get,
3411 .put = msm_pcm_channel_weight_put,
3412 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3413 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3414 },
3415 {
3416 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3417 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3418 .name = "MultiMedia1 Output Channel2",
3419 .info = msm_pcm_channel_weight_info,
3420 .get = msm_pcm_channel_weight_get,
3421 .put = msm_pcm_channel_weight_put,
3422 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3423 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3424 },
3425 {
3426 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3427 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3428 .name = "MultiMedia1 Output Channel3",
3429 .info = msm_pcm_channel_weight_info,
3430 .get = msm_pcm_channel_weight_get,
3431 .put = msm_pcm_channel_weight_put,
3432 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3433 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3434 },
3435 {
3436 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3437 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3438 .name = "MultiMedia1 Output Channel4",
3439 .info = msm_pcm_channel_weight_info,
3440 .get = msm_pcm_channel_weight_get,
3441 .put = msm_pcm_channel_weight_put,
3442 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3443 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3444 },
3445 {
3446 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3447 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3448 .name = "MultiMedia1 Output Channel5",
3449 .info = msm_pcm_channel_weight_info,
3450 .get = msm_pcm_channel_weight_get,
3451 .put = msm_pcm_channel_weight_put,
3452 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3453 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3454 },
3455 {
3456 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3457 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3458 .name = "MultiMedia1 Output Channel6",
3459 .info = msm_pcm_channel_weight_info,
3460 .get = msm_pcm_channel_weight_get,
3461 .put = msm_pcm_channel_weight_put,
3462 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3463 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3464 },
3465 {
3466 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3467 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3468 .name = "MultiMedia1 Output Channel7",
3469 .info = msm_pcm_channel_weight_info,
3470 .get = msm_pcm_channel_weight_get,
3471 .put = msm_pcm_channel_weight_put,
3472 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3473 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3474 },
3475 {
3476 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3477 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3478 .name = "MultiMedia1 Output Channel8",
3479 .info = msm_pcm_channel_weight_info,
3480 .get = msm_pcm_channel_weight_get,
3481 .put = msm_pcm_channel_weight_put,
3482 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3483 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3484 },
3485 {
3486 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3487 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3488 .name = "MultiMedia2 Output Channel1",
3489 .info = msm_pcm_channel_weight_info,
3490 .get = msm_pcm_channel_weight_get,
3491 .put = msm_pcm_channel_weight_put,
3492 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3493 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3494 },
3495 {
3496 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3497 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3498 .name = "MultiMedia2 Output Channel2",
3499 .info = msm_pcm_channel_weight_info,
3500 .get = msm_pcm_channel_weight_get,
3501 .put = msm_pcm_channel_weight_put,
3502 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3503 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3504 },
3505 {
3506 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3507 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3508 .name = "MultiMedia2 Output Channel3",
3509 .info = msm_pcm_channel_weight_info,
3510 .get = msm_pcm_channel_weight_get,
3511 .put = msm_pcm_channel_weight_put,
3512 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3513 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3514 },
3515 {
3516 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3517 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3518 .name = "MultiMedia3 Output Channel1",
3519 .info = msm_pcm_channel_weight_info,
3520 .get = msm_pcm_channel_weight_get,
3521 .put = msm_pcm_channel_weight_put,
3522 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3523 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3524 },
3525 {
3526 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3527 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3528 .name = "MultiMedia3 Output Channel2",
3529 .info = msm_pcm_channel_weight_info,
3530 .get = msm_pcm_channel_weight_get,
3531 .put = msm_pcm_channel_weight_put,
3532 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3533 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3534 },
3535 {
3536 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3537 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3538 .name = "MultiMedia1 Channel1",
3539 .info = msm_pcm_channel_input_be_info,
3540 .get = msm_pcm_channel_input_be_get,
3541 .put = msm_pcm_channel_input_be_put,
3542 .private_value = (unsigned long)&(mm1_ch1_enum)
3543 },
3544 {
3545 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3546 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3547 .name = "MultiMedia1 Channel2",
3548 .info = msm_pcm_channel_input_be_info,
3549 .get = msm_pcm_channel_input_be_get,
3550 .put = msm_pcm_channel_input_be_put,
3551 .private_value = (unsigned long)&(mm1_ch2_enum)
3552 },
3553 {
3554 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3555 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3556 .name = "MultiMedia1 Channel3",
3557 .info = msm_pcm_channel_input_be_info,
3558 .get = msm_pcm_channel_input_be_get,
3559 .put = msm_pcm_channel_input_be_put,
3560 .private_value = (unsigned long)&(mm1_ch3_enum)
3561 },
3562 {
3563 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3564 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3565 .name = "MultiMedia1 Channel4",
3566 .info = msm_pcm_channel_input_be_info,
3567 .get = msm_pcm_channel_input_be_get,
3568 .put = msm_pcm_channel_input_be_put,
3569 .private_value = (unsigned long)&(mm1_ch4_enum)
3570 },
3571 {
3572 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3573 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3574 .name = "MultiMedia1 Channel5",
3575 .info = msm_pcm_channel_input_be_info,
3576 .get = msm_pcm_channel_input_be_get,
3577 .put = msm_pcm_channel_input_be_put,
3578 .private_value = (unsigned long)&(mm1_ch5_enum)
3579 },
3580 {
3581 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3582 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3583 .name = "MultiMedia1 Channel6",
3584 .info = msm_pcm_channel_input_be_info,
3585 .get = msm_pcm_channel_input_be_get,
3586 .put = msm_pcm_channel_input_be_put,
3587 .private_value = (unsigned long)&(mm1_ch6_enum)
3588 },
3589 {
3590 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3591 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3592 .name = "MultiMedia1 Channel7",
3593 .info = msm_pcm_channel_input_be_info,
3594 .get = msm_pcm_channel_input_be_get,
3595 .put = msm_pcm_channel_input_be_put,
3596 .private_value = (unsigned long)&(mm1_ch7_enum)
3597 },
3598 {
3599 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3600 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3601 .name = "MultiMedia1 Channel8",
3602 .info = msm_pcm_channel_input_be_info,
3603 .get = msm_pcm_channel_input_be_get,
3604 .put = msm_pcm_channel_input_be_put,
3605 .private_value = (unsigned long)&(mm1_ch8_enum)
3606 },
3607};
3608static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3609 struct snd_ctl_elem_value *ucontrol)
3610{
3611 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3612 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3613 ucontrol->value.integer.value[0]);
3614 return 0;
3615}
3616
3617static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3618 struct snd_ctl_elem_value *ucontrol)
3619{
3620 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3621 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3622 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3623 return 0;
3624}
3625
3626static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3627 "Four", "Five", "Six", "Seven", "Eight"};
3628
3629static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3630 struct snd_ctl_elem_value *ucontrol)
3631{
3632 switch (msm_ec_ref_bit_format) {
3633 case SNDRV_PCM_FORMAT_S24_LE:
3634 ucontrol->value.integer.value[0] = 2;
3635 break;
3636 case SNDRV_PCM_FORMAT_S16_LE:
3637 ucontrol->value.integer.value[0] = 1;
3638 break;
3639 default:
3640 ucontrol->value.integer.value[0] = 0;
3641 break;
3642 }
3643 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3644 __func__, ucontrol->value.integer.value[0]);
3645 return 0;
3646}
3647
3648static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3649 struct snd_ctl_elem_value *ucontrol)
3650{
3651 u16 bit_width = 0;
3652
3653 switch (ucontrol->value.integer.value[0]) {
3654 case 2:
3655 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3656 break;
3657 case 1:
3658 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3659 break;
3660 default:
3661 msm_ec_ref_bit_format = 0;
3662 break;
3663 }
3664
3665 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3666 bit_width = 16;
3667 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3668 bit_width = 24;
3669
3670 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3671 __func__, msm_ec_ref_bit_format);
3672 adm_ec_ref_rx_bit_width(bit_width);
3673 return 0;
3674}
3675
3676static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3677
3678static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3679 struct snd_ctl_elem_value *ucontrol)
3680{
3681 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3682 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3683 __func__, ucontrol->value.integer.value[0]);
3684 return 0;
3685}
3686
3687static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3688 struct snd_ctl_elem_value *ucontrol)
3689{
3690 switch (ucontrol->value.integer.value[0]) {
3691 case 0:
3692 msm_ec_ref_sampling_rate = 0;
3693 break;
3694 case 1:
3695 msm_ec_ref_sampling_rate = 8000;
3696 break;
3697 case 2:
3698 msm_ec_ref_sampling_rate = 16000;
3699 break;
3700 case 3:
3701 msm_ec_ref_sampling_rate = 32000;
3702 break;
3703 case 4:
3704 msm_ec_ref_sampling_rate = 44100;
3705 break;
3706 case 5:
3707 msm_ec_ref_sampling_rate = 48000;
3708 break;
3709 case 6:
3710 msm_ec_ref_sampling_rate = 96000;
3711 break;
3712 case 7:
3713 msm_ec_ref_sampling_rate = 192000;
3714 break;
3715 case 8:
3716 msm_ec_ref_sampling_rate = 384000;
3717 break;
3718 default:
3719 msm_ec_ref_sampling_rate = 48000;
3720 break;
3721 }
3722 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3723 __func__, msm_ec_ref_sampling_rate);
3724 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3725 return 0;
3726}
3727
3728static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3729 "32000", "44100", "48000", "96000", "192000", "384000"};
3730
3731static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3732 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3733 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3734 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3735};
3736
3737static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3738 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3739 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3740 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3741 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3742 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3743 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3744};
3745
3746static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3747 struct snd_ctl_elem_value *ucontrol)
3748{
3749 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3750 mutex_lock(&routing_lock);
3751 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3752 mutex_unlock(&routing_lock);
3753 return 0;
3754}
3755
3756static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3757 struct snd_ctl_elem_value *ucontrol)
3758{
3759 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303760 struct snd_soc_dapm_widget *widget =
3761 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303762 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3763 struct snd_soc_dapm_update *update = NULL;
3764
3765
3766 mutex_lock(&routing_lock);
3767 switch (ucontrol->value.integer.value[0]) {
3768 case 0:
3769 msm_route_ec_ref_rx = 0;
3770 ec_ref_port_id = AFE_PORT_INVALID;
3771 break;
3772 case 1:
3773 msm_route_ec_ref_rx = 1;
3774 ec_ref_port_id = SLIMBUS_0_RX;
3775 break;
3776 case 2:
3777 msm_route_ec_ref_rx = 2;
3778 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3779 break;
3780 case 3:
3781 msm_route_ec_ref_rx = 3;
3782 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3783 break;
3784 case 4:
3785 msm_route_ec_ref_rx = 4;
3786 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3787 break;
3788 case 5:
3789 msm_route_ec_ref_rx = 5;
3790 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3791 break;
3792 case 6:
3793 msm_route_ec_ref_rx = 6;
3794 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3795 break;
3796 case 7:
3797 msm_route_ec_ref_rx = 7;
3798 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3799 break;
3800 case 9:
3801 msm_route_ec_ref_rx = 9;
3802 ec_ref_port_id = SLIMBUS_5_RX;
3803 break;
3804 case 10:
3805 msm_route_ec_ref_rx = 10;
3806 ec_ref_port_id = SLIMBUS_1_TX;
3807 break;
3808 case 11:
3809 msm_route_ec_ref_rx = 11;
3810 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3811 break;
3812 case 12:
3813 msm_route_ec_ref_rx = 12;
3814 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3815 break;
3816 case 13:
3817 msm_route_ec_ref_rx = 13;
3818 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3819 break;
3820 case 14:
3821 msm_route_ec_ref_rx = 14;
3822 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3823 break;
3824 case 15:
3825 msm_route_ec_ref_rx = 15;
3826 ec_ref_port_id = SLIMBUS_6_RX;
3827 break;
3828 case 16:
3829 msm_route_ec_ref_rx = 16;
3830 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3831 break;
3832 case 17:
3833 msm_route_ec_ref_rx = 17;
3834 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3835 break;
3836 case 18:
3837 msm_route_ec_ref_rx = 18;
3838 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3839 break;
3840 case 19:
3841 msm_route_ec_ref_rx = 19;
3842 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3843 break;
3844 case 20:
3845 msm_route_ec_ref_rx = 20;
3846 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3847 break;
3848 case 21:
3849 msm_route_ec_ref_rx = 21;
3850 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3851 break;
3852 case 22:
3853 msm_route_ec_ref_rx = 22;
3854 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3855 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003856 case 23:
3857 msm_route_ec_ref_rx = 23;
3858 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3859 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303860 case 24:
3861 msm_route_ec_ref_rx = 24;
3862 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3863 break;
3864 case 25:
3865 msm_route_ec_ref_rx = 25;
3866 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3867 break;
3868 case 26:
3869 msm_route_ec_ref_rx = 26;
3870 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3871 break;
3872 case 27:
3873 msm_route_ec_ref_rx = 27;
3874 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3875 break;
3876 case 28:
3877 msm_route_ec_ref_rx = 28;
3878 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3879 break;
Zhou Songb167db12018-07-02 17:14:00 +08003880 case 29:
3881 msm_route_ec_ref_rx = 29;
3882 ec_ref_port_id = SLIMBUS_7_RX;
3883 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303884 case 30:
3885 msm_route_ec_ref_rx = 30;
3886 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3887 break;
3888 case 31:
3889 msm_route_ec_ref_rx = 31;
3890 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3891 break;
3892 case 32:
3893 msm_route_ec_ref_rx = 32;
3894 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3895 break;
3896 case 33:
3897 msm_route_ec_ref_rx = 33;
3898 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3899 break;
3900 case 34:
3901 msm_route_ec_ref_rx = 34;
3902 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3903 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303904 default:
3905 msm_route_ec_ref_rx = 0; /* NONE */
3906 pr_err("%s EC ref rx %ld not valid\n",
3907 __func__, ucontrol->value.integer.value[0]);
3908 ec_ref_port_id = AFE_PORT_INVALID;
3909 break;
3910 }
3911 adm_ec_ref_rx_id(ec_ref_port_id);
3912 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3913 __func__, msm_route_ec_ref_rx);
3914 mutex_unlock(&routing_lock);
3915 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3916 msm_route_ec_ref_rx, e, update);
3917 return 0;
3918}
3919
3920static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3921 "PRI_MI2S_TX", "SEC_MI2S_TX",
3922 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3923 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3924 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3925 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303926 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3927 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003928 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303929 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
3930 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303931};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303932
3933static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3934 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3935};
3936
3937static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3938 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3939 msm_route_ec_ref_rx_enum[0],
3940 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3941
3942static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3943 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3944 msm_route_ec_ref_rx_enum[0],
3945 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3946
3947static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3948 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3949 msm_route_ec_ref_rx_enum[0],
3950 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3951
3952static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3953 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3954 msm_route_ec_ref_rx_enum[0],
3955 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3956
3957static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3958 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3959 msm_route_ec_ref_rx_enum[0],
3960 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3961
3962static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3963 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3964 msm_route_ec_ref_rx_enum[0],
3965 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3966
3967static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3968 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3969 msm_route_ec_ref_rx_enum[0],
3970 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3971
3972static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3973 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3974 msm_route_ec_ref_rx_enum[0],
3975 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3976
Asish Bhattacharya34504582017-08-08 12:55:01 +05303977static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
3978 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
3979 msm_route_ec_ref_rx_enum[0],
3980 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3981
Laxminath Kasam38070be2017-08-17 18:21:59 +05303982static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
3983 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
3984 msm_route_ec_ref_rx_enum[0],
3985 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3986
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303987static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
3988 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
3989 msm_route_ec_ref_rx_enum[0],
3990 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3991
3992static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
3993 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
3994 msm_route_ec_ref_rx_enum[0],
3995 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3996
3997static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
3998 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
3999 msm_route_ec_ref_rx_enum[0],
4000 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4001
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304002static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4003 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4004 msm_route_ec_ref_rx_enum[0],
4005 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4006
4007static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4008 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4009 msm_route_ec_ref_rx_enum[0],
4010 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4011
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304012static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4013 struct snd_ctl_elem_value *ucontrol)
4014{
4015 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4016
4017 mutex_lock(&routing_lock);
4018 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4019 mutex_unlock(&routing_lock);
4020 return 0;
4021}
4022
4023static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4024 struct snd_ctl_elem_value *ucontrol)
4025{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304026 struct snd_soc_dapm_widget *widget =
4027 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304028 int mux = ucontrol->value.enumerated.item[0];
4029 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4030 int ret = 1;
4031 bool state = true;
4032 uint16_t ext_ec_ref_port_id;
4033 struct snd_soc_dapm_update *update = NULL;
4034
4035 if (mux >= e->items) {
4036 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4037 return -EINVAL;
4038 }
4039
4040 mutex_lock(&routing_lock);
4041 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4042
4043 switch (msm_route_ext_ec_ref) {
4044 case EXT_EC_REF_PRI_MI2S_TX:
4045 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4046 break;
4047 case EXT_EC_REF_SEC_MI2S_TX:
4048 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4049 break;
4050 case EXT_EC_REF_TERT_MI2S_TX:
4051 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4052 break;
4053 case EXT_EC_REF_QUAT_MI2S_TX:
4054 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4055 break;
4056 case EXT_EC_REF_QUIN_MI2S_TX:
4057 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4058 break;
4059 case EXT_EC_REF_SLIM_1_TX:
4060 ext_ec_ref_port_id = SLIMBUS_1_TX;
4061 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004062 case EXT_EC_REF_SEC_TDM_TX:
4063 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4064 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304065 case EXT_EC_REF_NONE:
4066 default:
4067 ext_ec_ref_port_id = AFE_PORT_INVALID;
4068 state = false;
4069 break;
4070 }
4071
4072 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4073 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4074
4075 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4076 mutex_unlock(&routing_lock);
4077 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4078 update);
4079 } else {
4080 ret = -EINVAL;
4081 mutex_unlock(&routing_lock);
4082 }
4083 return ret;
4084}
4085
4086static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4087 "SEC_MI2S_TX", "TERT_MI2S_TX",
4088 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004089 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304090
4091static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4092 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4093};
4094
4095static const struct snd_kcontrol_new voc_ext_ec_mux =
4096 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4097 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4098
4099
4100static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004101 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4102 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004105 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4106 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304107 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004109 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4110 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304111 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004113 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4114 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304115 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004117 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4118 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304119 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004121 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4122 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304123 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004125 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4126 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304127 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004129 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4130 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304131 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004133 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4134 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304135 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004137 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4138 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304139 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004141 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4142 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304143 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004145 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4146 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304147 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004149 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4150 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304151 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004153 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4154 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304155 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004157 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4158 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304159 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004161 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4162 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304163 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004165 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4166 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304167 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004169 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4170 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304171 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004173 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4174 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304175 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004177 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4178 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304179 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004181 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4182 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304183 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4184 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304185};
4186
4187static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004188 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4189 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304190 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004192 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4193 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304194 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004196 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4197 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304198 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004200 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4201 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304202 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004204 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4205 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304206 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004208 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4209 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304210 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004212 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4213 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304214 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004216 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4217 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304218 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004220 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4221 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304222 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004224 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4225 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304226 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004228 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4229 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304230 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004232 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4233 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304234 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004236 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4237 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304238 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004240 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4241 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304242 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004244 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4245 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304246 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004248 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4249 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304250 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004252 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4253 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304254 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004256 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4257 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304258 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004260 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4261 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304262 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004264 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4265 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304266 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004268 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4269 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304270 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4271 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304272};
4273
Ralf Herzc8701f72018-06-20 11:37:35 +02004274static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004275 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004276 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004279 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004280 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304281 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004283 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004284 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004287 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004288 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304289 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004291 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004292 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004295 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004296 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304297 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004299 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004300 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304301 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004303 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004304 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004307 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004308 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004311 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004312 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304313 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004315 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004316 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304317 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004319 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004320 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304321 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004323 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004324 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304325 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004327 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004328 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304329 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004331 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004332 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304333 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004335 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004336 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304337 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004339 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004340 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304341 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004343 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004344 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304345 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004347 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004348 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304349 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004351 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004352 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304353 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004355 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004356 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4357 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4358 msm_routing_put_audio_mixer),
4359};
4360
4361static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4362 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4363 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4364 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4365 msm_routing_put_audio_mixer),
4366 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4367 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4368 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4369 msm_routing_put_audio_mixer),
4370 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4371 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4372 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4373 msm_routing_put_audio_mixer),
4374 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4375 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4376 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4377 msm_routing_put_audio_mixer),
4378 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4379 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4380 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4381 msm_routing_put_audio_mixer),
4382 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4383 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4384 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4385 msm_routing_put_audio_mixer),
4386 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4387 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4388 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4389 msm_routing_put_audio_mixer),
4390 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4391 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4392 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4393 msm_routing_put_audio_mixer),
4394 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4395 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4396 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4397 msm_routing_put_audio_mixer),
4398 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4399 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4400 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4401 msm_routing_put_audio_mixer),
4402 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4403 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4404 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4405 msm_routing_put_audio_mixer),
4406 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4407 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4408 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4409 msm_routing_put_audio_mixer),
4410 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4411 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4412 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4413 msm_routing_put_audio_mixer),
4414 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4415 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4416 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4417 msm_routing_put_audio_mixer),
4418 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4419 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4420 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4421 msm_routing_put_audio_mixer),
4422 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4423 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4424 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4425 msm_routing_put_audio_mixer),
4426 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4427 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4428 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4429 msm_routing_put_audio_mixer),
4430 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4431 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4432 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4433 msm_routing_put_audio_mixer),
4434 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4435 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4436 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4437 msm_routing_put_audio_mixer),
4438 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4439 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4440 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4441 msm_routing_put_audio_mixer),
4442 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4443 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304444 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4445 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304446};
4447
4448static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004449 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4450 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304451 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004453 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4454 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304455 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004457 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4458 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304459 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004461 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4462 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304463 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004465 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4466 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304467 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004469 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4470 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304471 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004473 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4474 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304475 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004477 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4478 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304479 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004481 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4482 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304483 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004485 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4486 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304487 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004489 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4490 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304491 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004493 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4494 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304495 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004497 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4498 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304499 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004501 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4502 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304503 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004505 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4506 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304507 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004509 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4510 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304511 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4512 msm_routing_put_audio_mixer),
4513};
4514
4515static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004516 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4517 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304518 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004520 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4521 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304522 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004524 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4525 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304526 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004528 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4529 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304530 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004532 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4533 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304534 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004536 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4537 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304538 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004540 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4541 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304542 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004544 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4545 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304546 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004548 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4549 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304550 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004552 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4553 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304554 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004556 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4557 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304558 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004560 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4561 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304562 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004564 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4565 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304566 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004568 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4569 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304570 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004572 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4573 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304574 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004576 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4577 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304578 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004580 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4581 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304582 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004584 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4585 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304586 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004588 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4589 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304590 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004592 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4593 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304594 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004596 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4597 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304598 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4599 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304600};
4601
4602static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004603 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4604 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304605 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004607 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4608 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304609 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004611 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4612 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004615 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4616 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304617 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004619 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4620 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304621 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004623 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4624 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304625 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004627 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4628 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304629 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004631 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4632 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004635 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4636 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304637 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004639 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4640 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304641 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004643 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4644 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304645 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004647 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4648 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304649 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004651 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4652 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304653 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004655 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4656 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304657 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004659 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4660 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304661 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004663 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4664 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304665 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004667 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4668 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304669 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004671 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4672 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304673 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004675 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4676 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304677 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004679 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4680 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304681 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004683 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4684 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304685 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4686 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304687};
4688
4689static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004690 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4691 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304692 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004694 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4695 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304696 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004698 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4699 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304700 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004702 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4703 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304704 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004706 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4707 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304708 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004710 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4711 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304712 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004714 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4715 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304716 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004718 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4719 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304720 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004722 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4723 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304724 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004726 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4727 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304728 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004730 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4731 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304732 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004734 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4735 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304736 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004738 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4739 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304740 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004742 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4743 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304744 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004746 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4747 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304748 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004750 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4751 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304752 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004754 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4755 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304756 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004758 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4759 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304760 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004762 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4763 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304764 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004766 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4767 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304768 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004770 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4771 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304772 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4773 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304774};
4775
4776static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004777 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4778 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304779 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004781 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4782 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304783 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004785 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4786 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304787 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004789 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4790 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304791 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004793 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4794 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304795 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004797 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4798 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304799 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004801 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4802 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304803 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004805 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4806 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304807 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004809 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4810 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304811 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004813 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4814 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304815 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004817 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4818 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304819 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004821 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4822 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304823 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004825 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4826 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304827 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004829 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4830 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304831 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004833 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4834 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304835 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004837 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304839 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004841 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304843 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004845 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004849 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004853 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4854 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304855 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004857 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4858 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304859 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4860 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304861};
4862
4863static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004864 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4865 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304866 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004868 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4869 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304870 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004872 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4873 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304874 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004876 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4877 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304878 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004880 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4881 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304882 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004884 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4885 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004888 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4889 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304890 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004892 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4893 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304894 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004896 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4897 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304898 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004900 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4901 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304902 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004904 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4905 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304906 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004908 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4909 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304910 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004912 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4913 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304914 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004916 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4917 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304918 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004920 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4921 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304922 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004924 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4925 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304926 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004928 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4929 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004932 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4933 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304934 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004936 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4937 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004940 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4941 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004944 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4945 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304946 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4947 msm_routing_put_audio_mixer),
4948
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304949};
4950
4951static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004952 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4953 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004956 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4957 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004960 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4961 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004964 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4965 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304966 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004968 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4969 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004972 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4973 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004976 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4977 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004980 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4981 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004984 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4985 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004988 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4989 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004992 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4993 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004996 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4997 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005000 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305002 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005004 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5005 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305006 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5009 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305010 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005012 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5013 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305014 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005016 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5017 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305018 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005020 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5021 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305022 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005024 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305028};
5029
5030static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005031 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5032 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305033 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5034 msm_routing_put_audio_mixer),
5035};
5036
5037static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005038 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5039 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305040 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005042 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5043 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305044 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005046 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5047 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305048 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005050 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5051 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305052 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005054 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5055 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305056 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005058 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5059 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305060 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005062 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5063 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305064 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005066 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5067 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305068 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005070 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5071 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305072 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005074 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5075 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305076 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005078 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5079 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305080 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005082 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5083 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305084 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005086 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5087 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305088 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005090 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5091 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305092 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005094 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5095 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305096 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005098 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5099 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305100 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005102 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5103 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305104 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005106 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5107 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305108 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005110 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5111 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005114 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5115 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305116 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005118 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5119 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305120 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5121 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305122};
5123
5124static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005125 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5126 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005129 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5130 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305131 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005133 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5134 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305135 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005137 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5138 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305139 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005141 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5142 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305143 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005145 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5146 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305147 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005149 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5150 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305151 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005153 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5154 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305155 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005157 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5158 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305159 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005161 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5162 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305163 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005165 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5166 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305167 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005169 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5170 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305171 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005173 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5174 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305175 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005177 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5178 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305179 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005181 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5182 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305183 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005185 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5186 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305187 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005189 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5190 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305191 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005193 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5194 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305195 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005197 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5198 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305199 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005201 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5202 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305203 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005205 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5206 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305207 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5208 msm_routing_put_audio_mixer),
5209
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305210};
5211
5212static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005213 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5214 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005217 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5218 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305219 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005221 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5222 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005225 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5226 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305227 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005229 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5230 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005233 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5234 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305235 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005237 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5238 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305239 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005241 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5242 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305243 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005245 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005249 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005253 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305255 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005257 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005261 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005265 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5266 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305267 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005269 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5270 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305271 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005273 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5274 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305275 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5276 msm_routing_put_audio_mixer),
5277};
5278
5279static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005280 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5281 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305282 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005284 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5285 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305286 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005288 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5289 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305290 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005292 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5293 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305294 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005296 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5297 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305298 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005300 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5301 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305302 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005304 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5305 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305306 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005308 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5309 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305310 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005312 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5313 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305314 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005316 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5317 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305318 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005320 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5321 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305322 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005324 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5325 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305326 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005328 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5329 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305330 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005332 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5333 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305334 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005336 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5337 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305338 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005340 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5341 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305342 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5343 msm_routing_put_audio_mixer),
5344};
5345
5346static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005347 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5348 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305349 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005351 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5352 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305353 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005355 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5356 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305357 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005359 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5360 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305361 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005363 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5364 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305365 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005367 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5368 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305369 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005371 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5372 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305373 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005375 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5376 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305377 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005379 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5380 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305381 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005383 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5384 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305385 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005387 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5388 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305389 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005391 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5392 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305393 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005395 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5396 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305397 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005399 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5400 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305401 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005403 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5404 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305405 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005407 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5408 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305409 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005411 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5412 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305413 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005415 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5416 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305417 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005419 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5420 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305421 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005423 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5424 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305425 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005427 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5428 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305429 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5430 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305431};
5432
5433static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005434 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5435 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305436 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005438 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5439 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305440 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005442 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5443 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305444 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005446 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5447 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305448 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005450 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5451 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305452 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005454 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5455 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005458 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5459 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005462 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5463 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305464 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005466 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5467 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305468 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005470 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5471 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305472 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005474 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5475 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005478 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5479 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305480 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005482 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5483 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305484 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005486 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5487 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305488 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005490 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5491 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305492 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005494 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5495 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305496 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5497 msm_routing_put_audio_mixer),
5498};
5499
Karthikeyan Mani57550082018-05-03 18:43:58 -07005500static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5501 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5502 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5503 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5504 msm_routing_put_audio_mixer),
5505 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5506 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5507 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5508 msm_routing_put_audio_mixer),
5509 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5510 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5511 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5512 msm_routing_put_audio_mixer),
5513 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5514 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5515 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5516 msm_routing_put_audio_mixer),
5517 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5518 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5519 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5520 msm_routing_put_audio_mixer),
5521 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5522 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5523 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5524 msm_routing_put_audio_mixer),
5525 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5526 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5527 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5528 msm_routing_put_audio_mixer),
5529 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5530 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5531 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5532 msm_routing_put_audio_mixer),
5533 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5534 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5535 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5536 msm_routing_put_audio_mixer),
5537 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5538 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5539 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5540 msm_routing_put_audio_mixer),
5541 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5542 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5543 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5544 msm_routing_put_audio_mixer),
5545 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5546 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5547 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5548 msm_routing_put_audio_mixer),
5549 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5550 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5551 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5552 msm_routing_put_audio_mixer),
5553 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5554 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5555 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5556 msm_routing_put_audio_mixer),
5557 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5558 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5559 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5560 msm_routing_put_audio_mixer),
5561 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5562 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5563 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5564 msm_routing_put_audio_mixer),
5565};
5566
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305567 /* incall music delivery mixer */
5568static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005569 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5570 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305571 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005573 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5574 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305575 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005577 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5578 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305579 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005581 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5582 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305583 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5584 msm_routing_put_audio_mixer),
5585};
5586
5587static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005588 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5589 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305590 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005592 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5593 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305594 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005596 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5597 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305598 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005600 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5601 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305602 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5603 msm_routing_put_audio_mixer),
5604};
5605
5606static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005607 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305609 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005611 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305613 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005615 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305617 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005619 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305621 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
5623};
5624
5625static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005626 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5627 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305628 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005630 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5631 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305632 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005634 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5635 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305636 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005638 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5639 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305640 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005642 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5643 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305644 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005646 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5647 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305648 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005650 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5651 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305652 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005654 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5655 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305656 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005658 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5659 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305660 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005662 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5663 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305664 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005666 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5667 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005670 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005674 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005678 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005682 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005686 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
5690};
5691
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305692static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5693 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5694 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5695 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5696 msm_routing_put_audio_mixer),
5697 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5698 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5699 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5700 msm_routing_put_audio_mixer),
5701 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5702 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5703 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5704 msm_routing_put_audio_mixer),
5705 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5706 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5707 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5708 msm_routing_put_audio_mixer),
5709 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5710 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5711 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5712 msm_routing_put_audio_mixer),
5713 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5714 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5715 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5716 msm_routing_put_audio_mixer),
5717 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5718 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5719 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5720 msm_routing_put_audio_mixer),
5721 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5722 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5723 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5724 msm_routing_put_audio_mixer),
5725 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5726 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5727 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5728 msm_routing_put_audio_mixer),
5729 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5731 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
5733 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5735 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
5737 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5739 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
5741 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5743 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
5745 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5747 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
5749 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5751 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
5753 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5755 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
5757};
5758
5759static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5760 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5761 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5763 msm_routing_put_audio_mixer),
5764 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5765 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5767 msm_routing_put_audio_mixer),
5768 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5769 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5771 msm_routing_put_audio_mixer),
5772 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5773 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5775 msm_routing_put_audio_mixer),
5776 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5777 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5779 msm_routing_put_audio_mixer),
5780 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5781 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5783 msm_routing_put_audio_mixer),
5784 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5785 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5786 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5787 msm_routing_put_audio_mixer),
5788 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5789 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5790 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5791 msm_routing_put_audio_mixer),
5792 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5793 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5794 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5795 msm_routing_put_audio_mixer),
5796 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5797 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5798 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5799 msm_routing_put_audio_mixer),
5800 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5801 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5802 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5803 msm_routing_put_audio_mixer),
5804 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5806 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
5808 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5810 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
5812 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5814 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
5816 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5818 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
5820 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
5824};
5825
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305826static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5827 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5829 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
5831 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5833 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
5835 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
5839 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5841 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
5843 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5845 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
5847 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
5851 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5853 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
5855 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5857 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
5859 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5860 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5861 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5862 msm_routing_put_audio_mixer),
5863 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5864 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5865 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5866 msm_routing_put_audio_mixer),
5867 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5868 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5869 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5870 msm_routing_put_audio_mixer),
5871 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5872 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5873 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5874 msm_routing_put_audio_mixer),
5875 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5876 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5877 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5878 msm_routing_put_audio_mixer),
5879 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5881 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
5883 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5885 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
5887 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
5891};
5892
5893static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
5894 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5895 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5896 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
5898 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5899 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5900 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5901 msm_routing_put_audio_mixer),
5902 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5903 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5904 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5905 msm_routing_put_audio_mixer),
5906 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5907 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5908 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
5910 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5911 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5912 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
5914 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5915 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5916 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
5918 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5919 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5920 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
5922 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5924 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
5926 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5927 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5928 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
5930 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5931 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5932 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5933 msm_routing_put_audio_mixer),
5934 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5935 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5936 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
5938 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5939 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5940 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5941 msm_routing_put_audio_mixer),
5942 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5943 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5944 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
5946 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5947 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5948 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
5950 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5952 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
5954 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5955 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5956 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
5958};
5959
5960static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
5961 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5963 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
5965 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5967 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
5969 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5970 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5971 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
5973 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5974 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5975 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
5977 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5978 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5979 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5980 msm_routing_put_audio_mixer),
5981 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5982 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5983 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5984 msm_routing_put_audio_mixer),
5985 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5986 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5987 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5988 msm_routing_put_audio_mixer),
5989 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5990 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5991 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5992 msm_routing_put_audio_mixer),
5993 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5994 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5995 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5996 msm_routing_put_audio_mixer),
5997 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5998 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5999 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6000 msm_routing_put_audio_mixer),
6001 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6002 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6003 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6004 msm_routing_put_audio_mixer),
6005 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6006 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6007 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
6009 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6011 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
6013 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6015 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
6017 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6019 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
6021 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6023 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
6025};
6026
6027static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6028 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6030 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
6032 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6034 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
6036 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6038 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
6040 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6042 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
6044 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6046 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
6048 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6050 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
6052 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6054 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
6056 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6058 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
6060 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6062 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
6064 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6066 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
6068 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6070 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
6072 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6074 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
6076 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6078 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
6080 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6082 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
6084 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6086 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
6088 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6090 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
6092};
6093
6094static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6095 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6097 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
6099 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6101 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
6103 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6105 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
6107 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6109 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
6111 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6113 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
6115 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6117 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
6119 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6121 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
6123 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6125 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
6127 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6129 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
6131 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6133 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
6135 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6137 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
6139 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6141 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
6143 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6145 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
6147 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6149 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
6151 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6153 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
6155 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6157 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
6159};
6160
6161static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6162 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6164 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
6166 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6168 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
6170 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6172 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
6174 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6176 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
6178 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
6182 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6184 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
6186 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6188 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
6190 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6192 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
6194 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6196 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
6198 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6200 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
6202 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6204 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
6206 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6208 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
6210 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6211 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6212 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6213 msm_routing_put_audio_mixer),
6214 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6216 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
6218 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6220 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
6222 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
6226};
6227
6228static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6229 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6231 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6232 msm_routing_put_audio_mixer),
6233 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6235 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6236 msm_routing_put_audio_mixer),
6237 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6239 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6240 msm_routing_put_audio_mixer),
6241 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6243 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
6245 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6247 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
6249 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6251 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
6253 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6255 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
6257 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6259 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
6261 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6263 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
6265 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6267 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
6269 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6271 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
6273 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6275 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
6277 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6279 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
6281 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6283 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
6285 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6287 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
6289 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6291 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
6293};
6294
6295static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6296 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6298 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6299 msm_routing_put_audio_mixer),
6300 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6303 msm_routing_put_audio_mixer),
6304 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6306 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6307 msm_routing_put_audio_mixer),
6308 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6310 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6311 msm_routing_put_audio_mixer),
6312 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6314 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6315 msm_routing_put_audio_mixer),
6316 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6318 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6319 msm_routing_put_audio_mixer),
6320 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6322 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6323 msm_routing_put_audio_mixer),
6324 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6326 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6327 msm_routing_put_audio_mixer),
6328 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6330 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
6332 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6333 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6334 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6335 msm_routing_put_audio_mixer),
6336 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6337 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6338 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6339 msm_routing_put_audio_mixer),
6340 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6342 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
6344 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6346 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
6348 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6350 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
6352 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6354 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
6356 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6358 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
6360};
6361
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306362static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006363 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6364 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306365 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006367 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6368 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306369 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006371 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6372 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306373 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006375 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306377 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006379 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306381 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006383 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306385 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006387 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306389 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006391 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306393 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006395 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306397 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006399 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306401 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006403 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306405 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006407 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306409 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006411 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306413 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006415 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306417 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006419 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306421 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006423 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306425 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
6427};
6428
6429static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006430 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306432 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006434 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306436 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006438 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306440 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006442 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6443 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306444 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006446 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306448 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006450 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306452 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006454 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306456 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006458 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306460 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006462 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306464 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006466 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306468 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006470 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306472 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006474 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306476 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006478 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306480 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006482 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306484 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006486 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306488 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006490 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306492 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
6494};
6495
6496static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006497 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6498 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306499 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006501 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306503 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006505 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306507 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006509 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306511 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006513 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006517 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306519 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006521 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306523 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006533 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006537 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006541 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006545 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006549 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006553 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006557 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006561 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306563 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006565 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006569 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306571 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006573 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306575 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006577 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306579 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306581};
6582
6583static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006584 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6585 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306586 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006588 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6589 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306590 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006592 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6593 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306594 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006596 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306598 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006600 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306602 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006604 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306606 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006608 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306610 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006612 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306614 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006616 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306618 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006620 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306622 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006624 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306626 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006628 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306630 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006632 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306634 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006636 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306638 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006640 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306642 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006644 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306646 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
6648};
6649
6650static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006651 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6652 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306653 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006655 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6656 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306657 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006659 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006663 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306665 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006667 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306669 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006671 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306673 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006675 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306677 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006679 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306681 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006683 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306685 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006687 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306689 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006691 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306693 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006695 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306697 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006699 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306701 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006703 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306705 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006707 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006711 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006715 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006719 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306721 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006723 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006727 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306729 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006731 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306733 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306735};
6736
6737static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006738 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306740 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006742 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006746 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006750 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006754 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006758 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006762 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006766 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006770 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006798 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006802 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006806 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306808 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006814 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306816 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006818 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306820 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306822};
6823
6824static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006885 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006893 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306895 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006897 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306899 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07006901 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_AUXPCM_RX,
6903 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006905 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6906 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306907 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006909 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6910 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306911 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6912 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306913};
6914
6915static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006932 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006964 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306966 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006968 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306970 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006972 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306974 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006976 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306978 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006980 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306982 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006984 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306986 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006988 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6989 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306990 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6991 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07006992 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
6993 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
6994 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
6995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006996 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6997 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306998 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007000 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7001 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307002 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7003 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307004};
7005
7006static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007007 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307009 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007011 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307013 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007027 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007039 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307041 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007043 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7044 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307045 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007047 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307049 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007051 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307053 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007055 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7056 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307057 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007059 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7060 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307061 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007063 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7064 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307065 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007067 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7068 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307069 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7070 msm_routing_put_audio_mixer),
7071};
7072
7073static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007074 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307076 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007078 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7079 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307080 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007082 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307084 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007086 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7087 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307088 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007090 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7091 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307092 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007094 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7095 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307096 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007098 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7099 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307100 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007102 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7103 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307104 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007106 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7107 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307108 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007110 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7111 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307112 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007114 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7115 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307116 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007118 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7119 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307120 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007122 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7123 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307124 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007126 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7127 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307128 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007130 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7131 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307132 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007134 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7135 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7137 msm_routing_put_audio_mixer),
7138};
7139
Rohit Kumara5077932017-09-10 22:05:05 +05307140static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007141 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7142 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007145 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7146 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307147 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007149 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307151 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007153 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307155 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007157 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007161 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307163 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007165 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7166 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307167 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007173 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7174 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307175 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007177 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7178 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307179 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007181 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7182 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307183 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007185 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7186 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307187 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007189 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7190 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307191 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007193 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7194 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307195 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007197 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7198 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307199 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007201 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7202 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307203 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7204 msm_routing_put_audio_mixer),
7205};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007211 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007215 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007219 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007223 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007227 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007231 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007235 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307237 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007239 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007243 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007247 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007251 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307253 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007255 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307257 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007263 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007267 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307269 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007271 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7273 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307275};
7276
7277static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007278 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007282 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007286 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007290 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007294 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007298 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007302 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307304 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007306 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307308 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007310 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007314 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007318 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007322 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007326 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007330 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007334 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307336 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007338 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307340 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007342 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7344 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307346};
7347
7348static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007349 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007353 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007357 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007413 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7415 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307417};
7418
7419static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007420 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307422 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007424 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307426 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007428 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007432 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307434 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007436 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307438 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007440 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307442 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007484 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7486 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307488};
7489
7490static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007491 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007495 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307497 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007499 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307501 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007503 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307505 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007507 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007515 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007519 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007523 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007527 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307529 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007531 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307533 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007535 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007539 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307541 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007543 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307545 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
7555};
7556
7557static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007558 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307560 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007562 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307564 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007566 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307568 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007570 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307572 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007574 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307576 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007578 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007582 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007586 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007590 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307592 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007594 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307596 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007598 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007602 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007622 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7624 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307626};
7627
7628static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007629 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007633 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007637 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007641 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307643 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007645 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307647 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007649 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007653 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007657 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007661 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007665 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007693 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7695 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307697};
7698
7699static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007708 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007712 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007724 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007728 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007732 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007736 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007740 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007744 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007748 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007752 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307754 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007756 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307758 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007760 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007764 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_SEC_TDM_RX_2,
7766 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307768};
7769
7770static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007771 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007775 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007779 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007783 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307785 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007787 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007791 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007795 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007799 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007803 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007807 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007811 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007815 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007819 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307821 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007823 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307825 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007827 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007831 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007835 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_SEC_TDM_RX_3,
7837 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307839};
7840
7841static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007842 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007846 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007850 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007854 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307856 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007858 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007862 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007866 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007870 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307872 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007874 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007878 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007882 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007886 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007890 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307892 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007894 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307896 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007898 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307900 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007902 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307904 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
7906};
7907
7908static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007909 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007913 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007917 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007921 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007925 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307927 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007929 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007933 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007937 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007941 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307943 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007945 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007949 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007953 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007957 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007961 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307963 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007965 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307967 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007969 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307971 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007973 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_TERT_TDM_RX_0,
7975 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307977};
7978
7979static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007980 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007984 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007988 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007992 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007996 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008000 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008004 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008008 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008012 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008016 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008020 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008024 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008028 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008032 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308034 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008036 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308038 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008040 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
8044};
8045
8046static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008047 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008051 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008055 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008059 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008063 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008067 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008071 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008075 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008079 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008083 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008087 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008091 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008095 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008099 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008103 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008107 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008111 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8113 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308115};
8116
8117static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008118 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308120 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008122 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308124 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008126 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308128 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008130 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308132 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008134 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308136 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008138 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308140 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008142 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308144 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008146 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308148 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008150 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308152 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008154 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008158 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308160 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008162 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308164 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008166 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308168 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008170 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308172 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008174 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308176 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008178 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008182 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8184 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308186};
8187
8188static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008189 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008193 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308195 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008197 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308199 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008201 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308203 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008205 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308207 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008209 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308211 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008213 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308215 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008217 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308219 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008221 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308223 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008225 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308227 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008229 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308231 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008233 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308235 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008237 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308239 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008241 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308243 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008245 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308247 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008249 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308251 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008253 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8255 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308257};
8258
8259static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008260 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008264 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008268 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008272 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308274 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008276 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308278 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008280 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308282 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008284 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008288 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308290 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008292 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308294 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008296 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308298 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008300 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008304 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308306 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008308 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308310 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008312 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008320 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308322 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008324 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8326 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308328};
8329
8330static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008331 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308333 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008335 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308337 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008339 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308341 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008343 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308345 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008347 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308349 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008351 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308353 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008355 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308357 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008359 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308361 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008363 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308365 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008367 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308369 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008371 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008375 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008379 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008383 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008387 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008391 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308393 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008395 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308397 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008399 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8401 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308403};
8404
8405static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008418 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008430 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308432 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008434 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308436 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008438 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008442 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008446 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008450 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008462 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308464 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
8470};
8471
8472static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008533 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308535 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008537 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308539 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008541 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8543 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308545};
8546
8547static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008556 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008560 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008564 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008568 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008572 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008576 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008580 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008584 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008588 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008592 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008596 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008600 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008604 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008616 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8618 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620};
8621
8622static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008663 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008667 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008671 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008679 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008691 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8693 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695};
8696
Rohit Kumara5077932017-09-10 22:05:05 +05308697static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308708 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008710 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008766 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
8768 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308770};
8771
8772static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008773 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008777 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308779 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008781 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8782 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308783 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008789 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008809 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
8837};
8838
8839static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008840 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008844 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008848 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008852 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008872 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008876 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308878 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008880 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8881 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308882 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008884 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8885 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308886 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008888 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008908 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
8910 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308912};
8913
8914static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008923 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308925 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008939 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308941 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008943 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308945 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008947 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308949 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008951 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308953 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008955 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8956 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308957 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008959 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308961 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008963 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008967 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008971 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008975 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008979 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008983 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
8985 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308987};
8988
8989static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009022 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309024 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009026 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9027 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309028 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009030 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9031 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309032 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009034 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309036 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009058 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9060 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309062};
9063
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309064static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009097 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009169 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009173 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9174 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309175 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009177 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9178 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309179 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009181 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9182 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309183 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009185 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9186 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309187 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009189 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9190 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009193 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9194 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309195 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009197 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9198 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309199 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009201 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9202 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309203 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009205 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9206 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309207 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009209 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9210 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309211 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009213 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9214 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009217 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9218 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309219 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009221 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9222 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309223 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009225 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9226 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309227 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009229 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9230 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309231 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009233 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9234 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309235 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009237 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9238 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309239 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009241 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9242 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309243 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9244 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309245 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9246 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9248 msm_routing_put_audio_mixer),
9249 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9250 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9251 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9252 msm_routing_put_audio_mixer),
9253 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9254 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9255 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9256 msm_routing_put_audio_mixer),
9257 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9258 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9260 msm_routing_put_audio_mixer),
9261 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9262 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9263 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9264 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9267 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9268 msm_routing_put_audio_mixer),
9269 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9270 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9271 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9272 msm_routing_put_audio_mixer),
9273 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9274 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9275 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9276 msm_routing_put_audio_mixer),
9277 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9278 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9279 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9280 msm_routing_put_audio_mixer),
9281 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9282 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9283 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9284 msm_routing_put_audio_mixer),
9285 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9286 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9287 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9288 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009289 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9290 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9291 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9292 msm_routing_put_audio_mixer),
9293 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9294 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9295 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9296 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297};
9298
9299static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009300 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9301 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009304 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9305 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309306 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009308 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9309 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309310 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009312 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9313 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309314 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009316 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9317 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009320 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9321 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309322 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009324 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9325 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309326 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009328 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9329 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309330 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009332 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9333 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009336 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9337 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309338 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009340 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9341 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309342 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009344 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9345 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309346 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009348 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9349 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309350 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009352 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9353 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309354 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009356 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9357 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309358 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009360 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9361 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309362 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009364 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9365 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309366 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009368 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9369 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309370 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009372 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9373 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309374 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009376 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9377 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309378 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009380 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9381 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009384 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9385 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309386 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009388 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9389 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309390 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009392 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9393 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309394 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009396 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9397 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309398 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009400 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9401 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309402 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009404 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309406 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009408 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309410 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009412 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309414 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009416 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9417 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009420 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309422 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009424 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9425 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309426 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009428 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9429 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309430 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009432 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309434 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309436 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9438 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
9440 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9442 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
9444 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
9448 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
9452 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9454 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309456 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9458 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
9460 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9462 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
9464 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9466 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
9468 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9470 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
9472 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9474 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
9476 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9478 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009480 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9482 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
9484 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9486 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309488};
9489
9490static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009495 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009499 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309501 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009507 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009511 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309513 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009515 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009539 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309541 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009555 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309557 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009567 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009571 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009583 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009587 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009595 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009599 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009603 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009607 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009611 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009615 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9616 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309617 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009619 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9620 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309621 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009623 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9624 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309625 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9626 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309627 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9628 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9629 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9630 msm_routing_put_audio_mixer),
9631 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9632 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9633 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9634 msm_routing_put_audio_mixer),
9635 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9636 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9637 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9638 msm_routing_put_audio_mixer),
9639 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9640 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9641 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9642 msm_routing_put_audio_mixer),
9643 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9644 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9645 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9646 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9649 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9650 msm_routing_put_audio_mixer),
9651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9653 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9654 msm_routing_put_audio_mixer),
9655 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9656 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9657 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9658 msm_routing_put_audio_mixer),
9659 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9660 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9662 msm_routing_put_audio_mixer),
9663 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9664 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9665 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9666 msm_routing_put_audio_mixer),
9667 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9668 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9670 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009671 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9672 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9673 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9674 msm_routing_put_audio_mixer),
9675 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9676 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9677 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9678 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679};
9680
9681static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009682 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009686 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309688 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009690 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9691 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309692 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009694 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9695 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309696 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009698 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9699 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309700 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009702 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9703 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309704 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009706 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9707 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309708 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009710 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9711 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309712 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009714 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9715 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309716 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009718 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9719 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309720 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009722 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9723 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309724 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009726 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9727 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309728 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009730 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9731 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309732 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009734 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9735 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309736 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009738 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9739 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309740 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009742 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9743 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009746 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9747 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309748 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009750 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9751 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309752 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009754 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9755 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309756 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009758 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9759 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309760 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009762 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9763 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309764 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009766 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9767 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309768 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009770 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9771 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309772 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009774 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9775 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309776 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009778 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9779 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309780 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009782 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9783 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309784 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009786 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9787 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309788 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009790 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9791 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309792 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009794 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9795 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309796 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009798 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9799 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309800 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009802 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9803 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309804 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009806 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9807 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309808 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009810 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9811 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309812 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9813 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309814 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9815 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9816 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9817 msm_routing_put_audio_mixer),
9818 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9819 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9820 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9821 msm_routing_put_audio_mixer),
9822 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9823 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9824 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9825 msm_routing_put_audio_mixer),
9826 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9827 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9828 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9829 msm_routing_put_audio_mixer),
9830 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9831 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9832 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9833 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309834 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9835 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9836 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9837 msm_routing_put_audio_mixer),
9838 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9839 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9840 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9841 msm_routing_put_audio_mixer),
9842 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9843 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9844 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9845 msm_routing_put_audio_mixer),
9846 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9847 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9848 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9849 msm_routing_put_audio_mixer),
9850 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9851 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9852 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9853 msm_routing_put_audio_mixer),
9854 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9855 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9856 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9857 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009858 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9859 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9860 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9861 msm_routing_put_audio_mixer),
9862 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9863 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9864 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9865 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866};
9867
9868static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009869 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9870 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309871 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009873 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9874 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309875 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009877 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9878 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309879 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009881 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9882 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309883 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009885 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9886 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309887 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009889 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9890 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309891 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009893 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9894 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309895 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009897 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9898 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309899 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009901 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9902 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309903 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009905 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9906 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309907 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009909 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9910 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309911 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009913 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9914 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309915 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009917 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309919 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009921 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309923 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009925 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9926 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309927 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009929 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9930 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309931 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009933 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9934 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309935 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009937 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9938 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309939 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009941 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9942 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309943 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009945 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9946 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309947 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009949 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9950 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309951 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009953 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9954 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309955 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009957 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9958 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309959 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009961 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9962 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309963 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009965 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9966 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309967 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009969 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9970 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309971 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009973 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9974 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309975 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009977 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9978 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309979 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009981 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9982 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309983 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009985 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9986 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309987 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010009 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010013 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010015 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010025 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10027 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
10029 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10031 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
10033 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10035 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
10037 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10039 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
10041 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10043 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010045 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10047 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
10049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10051 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
10053 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10055 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
10057 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10059 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
10061 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10063 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10064 msm_routing_put_audio_mixer),
10065 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10066 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10067 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10068 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010069 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10070 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10071 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10072 msm_routing_put_audio_mixer),
10073 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10074 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10075 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10076 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010077};
10078
10079static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010084 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010086 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010088 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010092 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010094 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010096 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010098 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010100 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010102 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010104 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010106 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010108 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010110 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010112 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010114 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010116 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010118 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010120 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010122 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010124 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010126 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010128 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010132 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010134 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010136 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10137 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010138 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010140 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10141 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010142 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010144 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10145 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010146 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010148 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10149 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010150 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010152 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10153 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010154 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010156 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10157 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010158 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010160 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10161 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010162 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010164 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10165 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010166 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010168 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10169 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010170 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010172 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10173 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010174 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010176 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10177 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010178 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010180 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10181 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010182 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010184 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10185 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010186 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010188 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10189 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010190 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010192 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10193 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010194 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010196 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10197 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010198 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010200 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10201 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010202 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010204 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10205 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010206 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010208 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10209 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010210 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010212 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10213 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010214 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10215 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010216 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10217 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10218 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10219 msm_routing_put_audio_mixer),
10220 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10221 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10222 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10223 msm_routing_put_audio_mixer),
10224 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10225 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10226 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10227 msm_routing_put_audio_mixer),
10228 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10229 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10230 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10231 msm_routing_put_audio_mixer),
10232 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10233 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10234 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10235 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010236 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10237 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10238 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10239 msm_routing_put_audio_mixer),
10240 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10241 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10242 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10243 msm_routing_put_audio_mixer),
10244 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10245 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10246 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10247 msm_routing_put_audio_mixer),
10248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10250 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10251 msm_routing_put_audio_mixer),
10252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10254 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10255 msm_routing_put_audio_mixer),
10256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10258 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10259 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010260 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10261 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10262 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10263 msm_routing_put_audio_mixer),
10264 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10265 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10266 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10267 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010268};
10269
10270static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010271 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10272 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010273 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010275 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10276 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010277 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010279 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10280 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010281 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010283 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10284 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010285 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010287 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10288 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010289 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010291 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10292 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010293 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010295 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10296 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010297 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010299 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10300 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010301 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010303 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10304 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010307 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10308 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010309 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010311 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10312 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010313 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010315 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10316 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010317 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010319 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10320 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010321 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010323 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10324 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010325 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010327 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10328 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010329 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010331 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10332 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010333 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010335 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10336 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010337 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010339 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10340 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010341 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010343 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10344 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010345 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010347 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10348 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010349 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010351 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10352 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010353 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010355 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10356 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010357 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010359 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10360 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010361 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010363 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10364 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010365 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010367 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10368 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010369 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010371 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10372 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010373 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010375 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10376 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010377 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010379 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10380 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010381 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010383 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10384 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010385 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010387 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10388 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010389 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010391 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10392 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010393 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010395 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10396 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010397 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010399 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10400 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010401 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010403 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10404 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010407 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010409 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010411 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10413 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10414 msm_routing_put_audio_mixer),
10415 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10417 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10418 msm_routing_put_audio_mixer),
10419 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10420 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10421 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10422 msm_routing_put_audio_mixer),
10423 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10424 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10425 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10426 msm_routing_put_audio_mixer),
10427 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10428 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10429 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10430 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010431 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10432 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10433 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10434 msm_routing_put_audio_mixer),
10435 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10436 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10437 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10438 msm_routing_put_audio_mixer),
10439 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10441 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10442 msm_routing_put_audio_mixer),
10443 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10445 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10446 msm_routing_put_audio_mixer),
10447 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10449 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
10451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10453 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010455 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10457 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
10459 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10461 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010463};
10464
Asish Bhattacharya34504582017-08-08 12:55:01 +053010465static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010466 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010470 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010472 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010488 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010490 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010492 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010494 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010496 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010498 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010500 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010502 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010504 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010506 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10507 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010508 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010510 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010512 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010514 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010516 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010518 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10519 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010520 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010522 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010524 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010526 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010528 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010530 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010532 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010534 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010536 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010538 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010540 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010542 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010544 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010546 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10547 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010548 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010550 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10551 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010552 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010554 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10555 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010556 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010558 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10559 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010560 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010562 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10563 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010564 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010566 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10567 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010568 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010570 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10571 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010572 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010574 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10575 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010576 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010578 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10579 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010580 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010582 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10583 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010584 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010586 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10587 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010588 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010590 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10591 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010592 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010594 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10595 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010596 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010598 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10599 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010600 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010602 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10603 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010604 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10605 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010606 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10607 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10608 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10609 msm_routing_put_audio_mixer),
10610 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10611 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10612 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10613 msm_routing_put_audio_mixer),
10614 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10615 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10616 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10617 msm_routing_put_audio_mixer),
10618 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10619 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10620 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10621 msm_routing_put_audio_mixer),
10622 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10623 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10624 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10625 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010626 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10627 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10628 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10629 msm_routing_get_audio_mixer,
10630 msm_routing_put_audio_mixer),
10631 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10633 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10634 msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
10636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10638 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10639 msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
10641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10643 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10644 msm_routing_get_audio_mixer,
10645 msm_routing_put_audio_mixer),
10646 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10647 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10648 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10649 msm_routing_get_audio_mixer,
10650 msm_routing_put_audio_mixer),
10651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10653 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10654 msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010656 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10658 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
10660 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10662 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010664};
10665
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010667 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010669 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010671 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010673 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010675 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010677 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010679 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010681 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010683 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010685 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010687 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010691 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010695 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010699 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010703 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010707 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010711 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010715 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010719 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010721 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010723 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010725 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010727 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010729 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010731 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010733 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010735 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010737 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010739 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010741 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010743 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010745 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10746 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010747 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10749 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
10751 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10753 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
10755 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10756 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10757 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10758 msm_routing_put_audio_mixer),
10759 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10761 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
10763 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10765 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010767 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10769 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
10771 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10773 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
10775 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10777 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10778 msm_routing_put_audio_mixer),
10779 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10781 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
10783 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10785 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
10787 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10789 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010791 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10793 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
10795 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10797 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010799};
10800
Laxminath Kasam38070be2017-08-17 18:21:59 +053010801static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010802 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010804 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010806 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010808 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010810 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10811 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010812 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010814 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10815 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010816 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010818 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10819 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010820 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010822 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10823 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010824 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010826 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10827 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010828 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010830 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10831 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010832 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010834 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10835 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070010836 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010838 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10839 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010840 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010842 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010844 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010846 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010848 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010850 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010852 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010856 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010858 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010860 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010862 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010864 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010866 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010868 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010870 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010872 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010874 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010876 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010878 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010880 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010882 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010884 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010886 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010888 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010890 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010892 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010894 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010896 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010898 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010900 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010902 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010904 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10905 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010906 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
10910 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10912 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
10914 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10916 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10917 msm_routing_put_audio_mixer),
10918 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10919 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10920 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10921 msm_routing_put_audio_mixer),
10922 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10924 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10925 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010926 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10927 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10928 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10929 msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
10931 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10933 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10934 msm_routing_get_audio_mixer,
10935 msm_routing_put_audio_mixer),
10936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10938 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10939 msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
10941 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10943 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10944 msm_routing_get_audio_mixer,
10945 msm_routing_put_audio_mixer),
10946 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10947 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10948 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10949 msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
10951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10953 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10954 msm_routing_get_audio_mixer,
10955 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010956 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10957 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10958 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10959 msm_routing_put_audio_mixer),
10960 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10961 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10962 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053010964};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010965static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010966 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010968 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010970 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10971 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010972 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010974 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10975 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010976 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010978 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010980 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010982 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10983 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010984 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010986 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10987 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010988 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010990 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10991 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010992 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010994 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010996 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10997 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080010998 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11000 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11001 msm_routing_put_audio_mixer),
11002 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11004 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11005 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011006 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11007 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11008 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11009 msm_routing_put_audio_mixer),
11010 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11011 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11012 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11013 msm_routing_put_audio_mixer),
11014 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11015 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11016 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11017 msm_routing_put_audio_mixer),
11018 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11019 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11020 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11021 msm_routing_put_audio_mixer),
11022 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11023 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11024 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11025 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011026 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11027 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11028 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11029 msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
11031 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11033 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11034 msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
11036 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11038 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11039 msm_routing_get_audio_mixer,
11040 msm_routing_put_audio_mixer),
11041 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11042 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11043 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11044 msm_routing_get_audio_mixer,
11045 msm_routing_put_audio_mixer),
11046 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11047 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11048 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11049 msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
11051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11053 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11054 msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011056 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11058 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
11060 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11062 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011064};
11065
11066static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011067 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011069 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011071 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011073 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011075 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011077 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11078 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011079 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11081 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011083 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11085 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011087 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011089 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011091 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011093 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011095 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011097 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011099 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011101 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011103 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011107 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011109 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011111 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11113 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
11115 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11117 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
11119 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11121 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
11123 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11125 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
11127 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11129 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11133 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11134 msm_routing_get_audio_mixer,
11135 msm_routing_put_audio_mixer),
11136 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11138 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11139 msm_routing_get_audio_mixer,
11140 msm_routing_put_audio_mixer),
11141 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11142 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11143 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11144 msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
11146 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11148 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11149 msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
11151 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11153 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11154 msm_routing_get_audio_mixer,
11155 msm_routing_put_audio_mixer),
11156 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11157 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11158 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11159 msm_routing_get_audio_mixer,
11160 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011161 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11163 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11164 msm_routing_put_audio_mixer),
11165 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11166 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11167 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011169};
11170
11171static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011172 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11173 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011174 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011176 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11177 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011178 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011180 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011182 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011184 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011186 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011188 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11189 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011190 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011192 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11193 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011194 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011196 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11197 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011198 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011200 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11201 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011202 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011204 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11206 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11207 msm_routing_put_audio_mixer),
11208 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11210 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11211 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011212 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11213 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11214 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11215 msm_routing_put_audio_mixer),
11216 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11218 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11219 msm_routing_put_audio_mixer),
11220 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11221 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11222 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11223 msm_routing_put_audio_mixer),
11224 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11225 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11226 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11227 msm_routing_put_audio_mixer),
11228 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11230 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11231 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011232 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11234 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11235 msm_routing_get_audio_mixer,
11236 msm_routing_put_audio_mixer),
11237 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11238 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11239 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11240 msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
11242 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11244 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11245 msm_routing_get_audio_mixer,
11246 msm_routing_put_audio_mixer),
11247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11249 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11250 msm_routing_get_audio_mixer,
11251 msm_routing_put_audio_mixer),
11252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11254 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11255 msm_routing_get_audio_mixer,
11256 msm_routing_put_audio_mixer),
11257 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11259 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11260 msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011262 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11264 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
11266 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11268 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011270};
11271
11272static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011273 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011275 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011277 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011279 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011281 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011283 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011285 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011287 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011289 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011291 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011293 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011295 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011297 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011299 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011301 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011303 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011305 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011307 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011309 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11310 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011311 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011313 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011315 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011317 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11318 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011319 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011321 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11322 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011323 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011325 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11326 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011327 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011329 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11330 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011331 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011333 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11334 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011335 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011337 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11338 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011339 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011341 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11342 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011343 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011345 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11346 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011347 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011349 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011351 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011353 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11354 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011355 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011357 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11358 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011359 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011361 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11362 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011363 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011365 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11366 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011367 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011369 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011371 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11372 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011373};
11374
11375static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11376 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_AUXPCM_TX,
11378 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
11380 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11381 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11382 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
11384 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11386 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11387 msm_routing_put_audio_mixer),
11388 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11390 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11391 msm_routing_put_audio_mixer),
11392 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11393 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11394 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11395 msm_routing_put_audio_mixer),
11396 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11397 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11398 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11399 msm_routing_put_audio_mixer),
11400 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11401 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11402 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11403 msm_routing_put_audio_mixer),
11404 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11405 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11406 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
11408 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11410 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11411 msm_routing_put_audio_mixer),
11412 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11413 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11414 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11415 msm_routing_put_audio_mixer),
11416 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11417 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11418 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11419 msm_routing_put_audio_mixer),
11420 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11421 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11422 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11423 msm_routing_put_audio_mixer),
11424 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11425 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11426 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11427 msm_routing_put_audio_mixer),
11428 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11429 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11430 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11431 msm_routing_put_audio_mixer),
11432 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11434 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11435 msm_routing_put_audio_mixer),
11436 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11437 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11438 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11439 msm_routing_put_audio_mixer),
11440 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11442 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11443 msm_routing_put_audio_mixer),
11444 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11446 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11447 msm_routing_put_audio_mixer),
11448 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11450 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11451 msm_routing_put_audio_mixer),
11452 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11453 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11454 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11455 msm_routing_put_audio_mixer),
11456 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11457 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11458 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11459 msm_routing_put_audio_mixer),
11460 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11462 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11463 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011464 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11466 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11467 msm_routing_put_audio_mixer),
11468 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11469 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11470 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11471 msm_routing_put_audio_mixer),
11472 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11473 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11474 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11475 msm_routing_put_audio_mixer),
11476 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11477 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11478 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11479 msm_routing_put_audio_mixer),
11480 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11482 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11483 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011484 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11485 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11486 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11487 msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
11489 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11491 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11492 msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
11494 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11496 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11497 msm_routing_get_audio_mixer,
11498 msm_routing_put_audio_mixer),
11499 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11500 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11501 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11502 msm_routing_get_audio_mixer,
11503 msm_routing_put_audio_mixer),
11504 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11505 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11506 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11507 msm_routing_get_audio_mixer,
11508 msm_routing_put_audio_mixer),
11509 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11511 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11512 msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011514 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11516 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
11518 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11520 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011522};
11523
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011524static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011525 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011527 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011529 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011531 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011533 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011535 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011537 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011539 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011541 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011543 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011545 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011547 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011549 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011551 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011553 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011555 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011557 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11559 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
11561 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11563 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011565 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11567 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
11569 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11571 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
11573 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11575 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
11577 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11579 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
11581 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11583 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011585 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11587 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11588 msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
11590 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11592 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11593 msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
11595 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11597 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11598 msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
11600 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11602 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11603 msm_routing_get_audio_mixer,
11604 msm_routing_put_audio_mixer),
11605 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11607 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11608 msm_routing_get_audio_mixer,
11609 msm_routing_put_audio_mixer),
11610 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11612 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11613 msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011615 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11617 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
11619 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11621 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011623};
11624
11625static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011626 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011628 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011630 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011632 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011634 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011636 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011638 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011640 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011644 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011648 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011652 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011654 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011656 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011658 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11660 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
11662 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11664 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011666 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11668 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
11670 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11672 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
11674 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11676 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
11678 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11680 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
11682 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11684 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11688 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11689 msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
11691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11693 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11694 msm_routing_get_audio_mixer,
11695 msm_routing_put_audio_mixer),
11696 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11697 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11698 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11699 msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
11701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11703 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11704 msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11708 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11709 msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
11711 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11713 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11714 msm_routing_get_audio_mixer,
11715 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011716 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11717 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11718 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11719 msm_routing_put_audio_mixer),
11720 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11721 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11722 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11723 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011724};
11725
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011726static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011727 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11728 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011729 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11730 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011731 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011733 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11734 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011735 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011737 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11738 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011739 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11740 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011741 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11742 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011743 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11744 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011745 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11746 msm_routing_put_voice_mixer),
11747};
11748
11749static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011750 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011752 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011754 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011756 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11757 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011758 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011760 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11761 msm_routing_put_voice_mixer),
11762};
11763
11764static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011765 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011767 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11768 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011769 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011771 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11772 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011773 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011775 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11776 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011777 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011779 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11780 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011781 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011783 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11784 msm_routing_put_voice_mixer),
11785};
11786
11787static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011788 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011790 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11791 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011792 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11793 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011794 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11795 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011796 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11797 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011798 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11799 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011800 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11801 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011802 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11803 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011804 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11805 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011806 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11807 msm_routing_put_voice_mixer),
11808};
11809
11810static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011811 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11812MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011813 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11814 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011815 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11816MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011817 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11818 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011819 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11820MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011821 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11822 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011823 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11824MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011825 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11826 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011827 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11828MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011829 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11830 msm_routing_put_voice_mixer),
11831};
11832
11833static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011834 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011836 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11837 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011838 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11839 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011840 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11841 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011842 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11843 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011844 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11845 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011846 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11847 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011848 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11849 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011850 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11851 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011852 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11853 msm_routing_put_voice_mixer),
11854};
11855
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011856static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011857 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11858MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011859 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11860 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011861 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11862MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011863 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11864 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011865 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11866MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011867 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11868 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011869 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11870MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011871 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11872 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011873 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11874MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011875 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11876 msm_routing_put_voice_mixer),
11877};
11878
Karthikeyan Mani57550082018-05-03 18:43:58 -070011879static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
11880 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11882 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11883 msm_routing_put_voice_mixer),
11884 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11886 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11887 msm_routing_put_voice_mixer),
11888 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11890 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11891 msm_routing_put_voice_mixer),
11892 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11894 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11895 msm_routing_put_voice_mixer),
11896 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11898 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11899 msm_routing_put_voice_mixer),
11900};
11901
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011902static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011903 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011905 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11906 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011907 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011909 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011911 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011913 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11914 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011915 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011917 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11918 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011919 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011921 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11922 msm_routing_put_voice_mixer),
11923};
11924
11925static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011926 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11927 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011928 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11929 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011930 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11931 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011932 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011934 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11935 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011936 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011938 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11939 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011940 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011942 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11943 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011944 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11945 msm_routing_put_voice_mixer),
11946};
11947
11948static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011949 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11950MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011951 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11952 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011953 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11954MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011955 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11956 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011957 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11958MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011959 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11960 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011961 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11962MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011963 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11964 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011965 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11966MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011967 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11968 msm_routing_put_voice_mixer),
11969};
11970
11971static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011972 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11973MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011974 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11975 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011976 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11977MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011978 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11979 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011980 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11981MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011982 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11983 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011984 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11985MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011986 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11987 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011988 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11989MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011990 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11991 msm_routing_put_voice_mixer),
11992};
11993
11994static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011995 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011997 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11998 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011999 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012001 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12002 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012003 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012005 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12006 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012007 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012009 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12010 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012011 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012013 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12014 msm_routing_put_voice_mixer),
12015};
12016
12017static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012018 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12019 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012020 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12021 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012022 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12023 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012024 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12025 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012026 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12027 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012028 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12029 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012030 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12031 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012032 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12033 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012034 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12035 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012036 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12037 msm_routing_put_voice_mixer),
12038};
12039
12040static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012041 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012043 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12044 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012045 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012047 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12048 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012049 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012051 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12052 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012053 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012055 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12056 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012057 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012059 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12060 msm_routing_put_voice_mixer),
12061};
12062
12063static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012064 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012066 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12067 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012068 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12069 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012070 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12071 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012072 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12073 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012074 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12075 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012076 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12077 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012078 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12079 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012080 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12081 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012082 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12083 msm_routing_put_voice_mixer),
12084};
12085
12086static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012087 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12088 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012089 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12090 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012091 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12092 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012093 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12094 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012095 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12096 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012097 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12098 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012099 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12100 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012101 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12102 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012103 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12104 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012105 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12106 msm_routing_put_voice_mixer),
12107};
12108
12109static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012110 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012112 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12113 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012114 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012116 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012118 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012120 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012122 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012124 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12125 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012126 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012128 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12129 msm_routing_put_voice_mixer),
12130};
12131
12132static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012133 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12134MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012135 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12136 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012137 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12138MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012139 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12140 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012141 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12142MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012143 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12144 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012145 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12146MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012147 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12148 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012149 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12150MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012151 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12152 msm_routing_put_voice_mixer),
12153};
12154
12155static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012156 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12157MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012158 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12159 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012160 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12161MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012162 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12163 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012164 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12165MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012166 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12167 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012168 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12169MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012170 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12171 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012172 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12173MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012174 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12175 msm_routing_put_voice_mixer),
12176};
12177
12178static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012179 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12180MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012181 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12182 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012183 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12184MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012185 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12186 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012187 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12188MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012189 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12190 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012191 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12192MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012193 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12194 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012195 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12196MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012197 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12198 msm_routing_put_voice_mixer),
12199};
12200
Rohit Kumara5077932017-09-10 22:05:05 +053012201static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012202 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12203MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012204 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12205 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012206 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12207MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012208 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12209 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012210 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12211MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012212 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12213 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012214 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12215MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012216 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12217 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012218 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12219MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012220 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12221 msm_routing_put_voice_mixer),
12222};
12223
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012224static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012225 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012227 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12228 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012229 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012231 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12232 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012233 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012235 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12236 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012237 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12238 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012239 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12240 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012241 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12242 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012243 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12244 msm_routing_put_voice_mixer),
12245};
12246
12247static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012248 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12249MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012250 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12251 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012252 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12253MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012254 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12255 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012256 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12257MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012258 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12259 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012260 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12261MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012262 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12263 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012264 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12265MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012266 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12267 msm_routing_put_voice_mixer),
12268};
12269
12270static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012271 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012273 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12274 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012275 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012277 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12278 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012279 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012281 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12282 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012283 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12286 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012287 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012289 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12290 msm_routing_put_voice_mixer),
12291};
12292
12293static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012294 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012296 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12297 msm_routing_put_voice_mixer),
12298};
12299
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012300static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12301 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12303 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12304 msm_routing_put_voice_mixer),
12305 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12307 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12308 msm_routing_put_voice_mixer),
12309 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12311 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12312 msm_routing_put_voice_mixer),
12313 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12315 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12316 msm_routing_put_voice_mixer),
12317 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12319 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12320 msm_routing_put_voice_mixer),
12321};
12322
12323static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12324 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12325 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12326 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12327 msm_routing_put_voice_mixer),
12328 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12329 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12330 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12331 msm_routing_put_voice_mixer),
12332 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12333 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12334 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12335 msm_routing_put_voice_mixer),
12336 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12337 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12338 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12339 msm_routing_put_voice_mixer),
12340 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12341 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12342 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12343 msm_routing_put_voice_mixer),
12344};
12345
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012346static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12347 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12349 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12350 msm_routing_put_voice_mixer),
12351 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12353 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12354 msm_routing_put_voice_mixer),
12355 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12357 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12358 msm_routing_put_voice_mixer),
12359 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12361 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12362 msm_routing_put_voice_mixer),
12363 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12365 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12366 msm_routing_put_voice_mixer),
12367};
12368
12369static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12370 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12371 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12372 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12373 msm_routing_put_voice_mixer),
12374 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12376 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12377 msm_routing_put_voice_mixer),
12378 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12380 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12381 msm_routing_put_voice_mixer),
12382 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12384 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12385 msm_routing_put_voice_mixer),
12386 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12388 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12389 msm_routing_put_voice_mixer),
12390};
12391
12392static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12393 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12395 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12396 msm_routing_put_voice_mixer),
12397 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12399 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12400 msm_routing_put_voice_mixer),
12401 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12403 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12404 msm_routing_put_voice_mixer),
12405 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12407 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12408 msm_routing_put_voice_mixer),
12409 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12411 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12412 msm_routing_put_voice_mixer),
12413};
12414
12415static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12416 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12418 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12419 msm_routing_put_voice_mixer),
12420 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12421 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12422 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12423 msm_routing_put_voice_mixer),
12424 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12425 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12426 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12427 msm_routing_put_voice_mixer),
12428 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12429 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12430 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12431 msm_routing_put_voice_mixer),
12432 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12434 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12435 msm_routing_put_voice_mixer),
12436};
12437
12438static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12439 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12440 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12441 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12442 msm_routing_put_voice_mixer),
12443 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12444 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12445 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12446 msm_routing_put_voice_mixer),
12447 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12448 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12449 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12450 msm_routing_put_voice_mixer),
12451 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12453 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12454 msm_routing_put_voice_mixer),
12455 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12457 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12458 msm_routing_put_voice_mixer),
12459};
12460
12461static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12462 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12464 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12465 msm_routing_put_voice_mixer),
12466 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12468 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12469 msm_routing_put_voice_mixer),
12470 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12472 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12473 msm_routing_put_voice_mixer),
12474 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12476 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12477 msm_routing_put_voice_mixer),
12478 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12479 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12480 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12481 msm_routing_put_voice_mixer),
12482};
12483
12484static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12485 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12486 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12487 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12488 msm_routing_put_voice_mixer),
12489 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12491 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12492 msm_routing_put_voice_mixer),
12493 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12494 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12495 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12496 msm_routing_put_voice_mixer),
12497 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12498 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12499 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12500 msm_routing_put_voice_mixer),
12501 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12502 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12503 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12504 msm_routing_put_voice_mixer),
12505};
12506
12507static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12508 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12510 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12511 msm_routing_put_voice_mixer),
12512 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12513 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12514 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12515 msm_routing_put_voice_mixer),
12516 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12517 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12518 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12519 msm_routing_put_voice_mixer),
12520 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12521 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12522 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12523 msm_routing_put_voice_mixer),
12524 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12526 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12527 msm_routing_put_voice_mixer),
12528};
12529
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012530static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012531 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12532 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012533 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12534 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012535 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012537 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12538 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012539};
12540
12541static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012542 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12543 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012544 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12545 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012546 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12547 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012548 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12549 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012550};
12551
12552static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012553 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12554 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012555 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12556 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012557 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12558 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012559 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12560 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012561};
12562
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012563static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012564 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012566 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12567 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012570 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12571 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012572 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012573 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12574 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012575 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012576 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12577 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012578 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12580 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012581 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012582 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12583 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012585 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12586 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012587 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012588 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12589 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012590 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012591 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12592 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012593 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012594 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12595 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012596 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012597 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12598 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012599 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012600 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12601 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012602 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012603 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12604 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012605 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12607 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12610 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012611 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
12612 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012613 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12614 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012615 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
12616MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012617 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012618 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12619 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12620 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12621 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12622 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12623 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012624 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12626 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12627 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12629 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12630 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
12631 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
12632 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12633 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
12634 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
12635 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
12637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
12638 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12639 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
12641 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012642};
12643
12644static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
12646 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12648 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012649 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
12650 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012651 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12652 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012653 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12655 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012656 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012657 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12658 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012659 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012660 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12661 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012662 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012663 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12664 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012665 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012666 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12667 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012668 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012669 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12670 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012671 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012672 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12673 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012674 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012675 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12676 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012677 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012678 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12679 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012680 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012681 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12682 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012683 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012684 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12685 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012686 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012687 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12688 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012689 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012690 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12691 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012692 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012693 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12694 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012695 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12697 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12698 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12699 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12700 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12703 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12704 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12705 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12706 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12707 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
12708 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
12709 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12710 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
12711 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
12712 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12713 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
12714 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
12715 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12716 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
12717 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
12718 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012719};
12720
12721static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012722 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
12723 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012724 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12725 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012726 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
12727 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012728 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12729 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012730 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
12731 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012732 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12733 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012734 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
12735 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012736 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
12739 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012740 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012742 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
12743 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012744 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12745 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012746 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12747 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012748 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12749 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012750 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12751 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012752 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012754 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12755 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012756 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12757 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012758 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12759 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012760 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12761 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012762 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
12763 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012764 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12765 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012766 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
12767 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012768 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12769 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012770 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
12771 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012772 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12773 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012774 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
12775 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012776 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12777 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012778 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
12779 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012780 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12781 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012782 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
12783 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012784 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12785 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012786 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12787 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12788 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12789 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12791 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012792 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12793 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12794 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12795 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12797 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12798 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
12800 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12801 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
12802 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
12803 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12804 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
12805 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
12806 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12807 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
12809 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012810};
12811
12812static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012813 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12816 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012817 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012819 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12820 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012821 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012823 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12824 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012825 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12826 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012827 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12828 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012829 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012831 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12832 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012833 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012835 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12836 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012837 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012839 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12840 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012841 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012843 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12844 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012845 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12846 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012847 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12848 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012849 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12850 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012851 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12852 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012853 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12854 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012855 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12856 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012857 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12858 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012859 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12860 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012861 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12862 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012863 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12864 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012865 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12866 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012867 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12868 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012869 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12870 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012871 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12872 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012873 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
12874 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012875 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12876 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012877 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12878 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012879 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12880 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012881 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12882 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012883 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12884 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012885 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12886 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012887 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12888 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012889 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12890 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12891 1, 0, msm_routing_get_voice_stub_mixer,
12892 msm_routing_put_voice_stub_mixer),
12893 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12894 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12895 1, 0, msm_routing_get_voice_stub_mixer,
12896 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012897 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12898 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12899 1, 0, msm_routing_get_voice_stub_mixer,
12900 msm_routing_put_voice_stub_mixer),
12901 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12903 1, 0, msm_routing_get_voice_stub_mixer,
12904 msm_routing_put_voice_stub_mixer),
12905 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12906 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
12907 1, 0, msm_routing_get_voice_stub_mixer,
12908 msm_routing_put_voice_stub_mixer),
12909 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12910 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
12911 1, 0, msm_routing_get_voice_stub_mixer,
12912 msm_routing_put_voice_stub_mixer),
12913 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12914 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
12915 1, 0, msm_routing_get_voice_stub_mixer,
12916 msm_routing_put_voice_stub_mixer),
12917 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
12919 1, 0, msm_routing_get_voice_stub_mixer,
12920 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012921};
12922
12923static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012924 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012926 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12927 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012928 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012930 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12931 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012932 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012934 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12935 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012936 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012938 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12939 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012940 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12941 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012942 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12943 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012944 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012946 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12947 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012948 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12949 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012950 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12951 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012952 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012954 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12955 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012956 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012958 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12959 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012960 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012962 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12963 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012964 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012966 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12967 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012968 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12969 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012970 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12971 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012972 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012974 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12975 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12979 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012980 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12981 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12983 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012984 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
12986 1, 0, msm_routing_get_voice_stub_mixer,
12987 msm_routing_put_voice_stub_mixer),
12988 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12989 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
12990 1, 0, msm_routing_get_voice_stub_mixer,
12991 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012992 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
12994 1, 0, msm_routing_get_voice_stub_mixer,
12995 msm_routing_put_voice_stub_mixer),
12996 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12997 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
12998 1, 0, msm_routing_get_voice_stub_mixer,
12999 msm_routing_put_voice_stub_mixer),
13000 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13002 1, 0, msm_routing_get_voice_stub_mixer,
13003 msm_routing_put_voice_stub_mixer),
13004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13006 1, 0, msm_routing_get_voice_stub_mixer,
13007 msm_routing_put_voice_stub_mixer),
13008 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13010 1, 0, msm_routing_get_voice_stub_mixer,
13011 msm_routing_put_voice_stub_mixer),
13012 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13014 1, 0, msm_routing_get_voice_stub_mixer,
13015 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016};
13017
13018static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13022 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13026 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13028 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13030 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13032 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13034 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13036 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13038 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13042 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13044 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13046 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013049 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13050 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13052 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013053 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13054 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013055 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13056 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013057 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13058 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13062 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013065 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13066 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013067 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013069 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13070 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013071 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13072 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013073 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13074 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013075 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013077 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13078 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013079 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13081 1, 0, msm_routing_get_voice_stub_mixer,
13082 msm_routing_put_voice_stub_mixer),
13083 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13085 1, 0, msm_routing_get_voice_stub_mixer,
13086 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013087 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13088 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13089 1, 0, msm_routing_get_voice_stub_mixer,
13090 msm_routing_put_voice_stub_mixer),
13091 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13093 1, 0, msm_routing_get_voice_stub_mixer,
13094 msm_routing_put_voice_stub_mixer),
13095 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13097 1, 0, msm_routing_get_voice_stub_mixer,
13098 msm_routing_put_voice_stub_mixer),
13099 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13101 1, 0, msm_routing_get_voice_stub_mixer,
13102 msm_routing_put_voice_stub_mixer),
13103 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13105 1, 0, msm_routing_get_voice_stub_mixer,
13106 msm_routing_put_voice_stub_mixer),
13107 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13109 1, 0, msm_routing_get_voice_stub_mixer,
13110 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013111};
13112
13113static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013116 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013118 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013120 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013122 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13124 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013125 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13127 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013128 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13129 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013130 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13131 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013132 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13133 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013134 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13135 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13137 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13139 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013140 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13141 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013142 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013144 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13145 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013146 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013148 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13149 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013150 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013152 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13153 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013154 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013156 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13157 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013158 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013160 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13161 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013162 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013164 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13165 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013166 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013168 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13169 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013170 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13171 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013172 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13173 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013174 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013176 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13177 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013178 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13179 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13180 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13181 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13183 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013184 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13186 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13187 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13188 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13189 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13190 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13192 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13193 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13195 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13196 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13197 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13198 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13199 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13200 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13201 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202};
13203
13204static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013205 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013207 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013211 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013215 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013219 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013221 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013223 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013227 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013229 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013231 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013235 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013237 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013239 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013241 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013243 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13244 msm_routing_put_port_mixer),
13245};
13246
13247static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013248 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13249 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013250 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013252 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13253 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013254 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013256 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013258 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013260 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13261 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013262 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013264 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13265 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013266 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013268 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013270 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013272 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013274 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013278 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013282 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13287 msm_routing_put_port_mixer),
13288};
13289
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013290static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13291 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13293 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13294 msm_routing_put_port_mixer),
13295 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13297 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13298 msm_routing_put_port_mixer),
13299};
13300
13301static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13302 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13303 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13304 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13305 msm_routing_put_port_mixer),
13306};
13307
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013308static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013309 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13310 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013311 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013313 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013315 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013317 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13318 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013319 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013321 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13322 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013323 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013325 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13326 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013327 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013329 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13330 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013331 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013333 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013335 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013337 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13338 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013339 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013341 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13342 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013343 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013345 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13346 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013347 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013349 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013351 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013353 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013355 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013357 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13358 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013359 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013361 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013363 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013365 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013367 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013369 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013371 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013373 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013375 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013377 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13378 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013379 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013381 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13382 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013383 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013385 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13386 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013387 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013389 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13390 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013391 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013393 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13395MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013396 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013397};
13398
13399static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013400 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13401 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013402 MSM_BACKEND_DAI_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("SLIM_0_TX", SND_SOC_NOPM,
13405 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013406 MSM_BACKEND_DAI_SLIMBUS_0_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("SLIM_1_TX", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013410 MSM_BACKEND_DAI_SLIMBUS_1_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013414 MSM_BACKEND_DAI_SEC_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("QUAT_TDM_TX_0", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013418 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013420 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013422 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13423 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013424};
13425
13426static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013427 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13428 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013429 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013431 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013433 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013435 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13436 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013437 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013439 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13440 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013441 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13442 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013443};
13444
13445static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013446 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013448 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013450 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13451 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013452 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013454 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13455 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013456 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13457 msm_routing_put_port_mixer),
13458};
13459
13460static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013461 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13462 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013463 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013465 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13466 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013467 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013469 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13470 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013471 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13472 msm_routing_put_port_mixer),
13473};
13474
Rohit Kumara5077932017-09-10 22:05:05 +053013475static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013476 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013478 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013480 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013482 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013484 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013486 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13487 msm_routing_put_port_mixer),
13488};
13489
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013490static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013491 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13492 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013493 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013495 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13496 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013497 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013499 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013501 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013503 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13504 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013505 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013507 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13508 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013509 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013511 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013513 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13514 msm_routing_put_port_mixer),
13515};
13516
13517static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013518 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13519 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013520 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013522 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13523 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013524 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013526 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13527 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013528 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013530 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13531 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013532 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013534 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13535 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013536 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13537 msm_routing_put_port_mixer),
13538};
13539
13540static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013541 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013543 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013545 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013547 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013549 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013551 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013553 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013555 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013557 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013559 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013561 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013563 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013565 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13566 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013567 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013569 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013571 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013573 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013575 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013577 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013579 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013581 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013583 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013585 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013587 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13588 msm_routing_put_port_mixer),
13589};
13590
13591static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013592 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13593 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013594 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013596 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13597 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013598 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13599 msm_routing_put_port_mixer),
13600};
13601
13602static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013603 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13604 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013605 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013607 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13608 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013609 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13610 msm_routing_put_port_mixer),
13611};
13612
13613
13614static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013615 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13616 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013617 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13618 msm_routing_put_port_mixer),
13619};
13620
13621static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013622 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13623 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013624 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13625 msm_routing_put_port_mixer),
13626};
13627
Karthikeyan Mani57550082018-05-03 18:43:58 -070013628static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
13629 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13631 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13632 msm_routing_put_port_mixer),
13633};
13634
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013635static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013636 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_SEC_I2S_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),
13640};
13641
13642static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013643 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13644 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013645 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013647 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13648 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013649 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13650 msm_routing_put_port_mixer),
13651};
13652
13653static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013654 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013656 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013658 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13659 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013660 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013662 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013664 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013666 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13667 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013668 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013670 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13671 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013672 MSM_BACKEND_DAI_INT_BT_SCO_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("PRI_MI2S_TX", SND_SOC_NOPM,
13675 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013676 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013678 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13679 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013680 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013682 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013684 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013686 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013688 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013690 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013692 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13693 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013694};
13695
13696static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013697 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013699 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
13700 msm_routing_put_port_mixer),
13701};
13702
13703static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013704 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13705 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013706 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013708 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13709 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013710 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013712 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13713 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013714 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013716 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13717 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013718 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013720 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13721 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013722 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013724 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13725 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013726 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013728 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13729 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013730 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013732 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13733 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013734 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013736 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13737 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013738 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13739 msm_routing_put_port_mixer),
13740};
13741
Rohit Kumara5077932017-09-10 22:05:05 +053013742static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013743 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013745 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013747 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013749 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013751 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013753 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013755 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013757 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013759 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013761 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013763 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013765 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013767 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013769 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13770 msm_routing_put_port_mixer),
13771};
13772
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013773static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013774 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013776 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13777 msm_routing_get_port_mixer,
13778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013779 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13780 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013781 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13782 msm_routing_get_port_mixer,
13783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013784 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13785 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13787 msm_routing_get_port_mixer,
13788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013789 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13790 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013791 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13792 msm_routing_get_port_mixer,
13793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013794 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013796 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13797 msm_routing_get_port_mixer,
13798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013799 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13800 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013801 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13802 msm_routing_get_port_mixer,
13803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013804 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13805 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013806 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13807 msm_routing_get_port_mixer,
13808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013809 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13810 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013811 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13812 msm_routing_get_port_mixer,
13813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013814 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013816 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13817 msm_routing_get_port_mixer,
13818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013819 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013821 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13822 msm_routing_get_port_mixer,
13823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013824 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13825 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013826 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13827 msm_routing_get_port_mixer,
13828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013829 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13830 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013831 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13832 msm_routing_get_port_mixer,
13833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013836 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13837 msm_routing_get_port_mixer,
13838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013839 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13840 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013841 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13842 msm_routing_get_port_mixer,
13843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013844 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13845 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013846 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13847 msm_routing_get_port_mixer,
13848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013849 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13850 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013851 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13852 msm_routing_get_port_mixer,
13853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013854 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013856 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13857 msm_routing_get_port_mixer,
13858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013859 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13860 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013861 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13862 msm_routing_get_port_mixer,
13863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013864 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013866 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13867 msm_routing_get_port_mixer,
13868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013869 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013871 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13872 msm_routing_get_port_mixer,
13873 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013874};
13875
13876static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013877 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13878 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013879 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13880 msm_routing_get_port_mixer,
13881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013882 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13883 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013884 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13885 msm_routing_get_port_mixer,
13886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013887 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13888 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013889 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13890 msm_routing_get_port_mixer,
13891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013892 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13893 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013894 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13895 msm_routing_get_port_mixer,
13896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013897 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13898 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013899 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13900 msm_routing_get_port_mixer,
13901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013902 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13903 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013904 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13905 msm_routing_get_port_mixer,
13906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013907 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013909 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13910 msm_routing_get_port_mixer,
13911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013912 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13913 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013914 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13915 msm_routing_get_port_mixer,
13916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013917 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13918 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013919 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13920 msm_routing_get_port_mixer,
13921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013922 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13923 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013924 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13925 msm_routing_get_port_mixer,
13926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013927 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013929 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13930 msm_routing_get_port_mixer,
13931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013932 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13933 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013934 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13935 msm_routing_get_port_mixer,
13936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013937 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13938 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013939 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13940 msm_routing_get_port_mixer,
13941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013942 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13943 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013944 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13945 msm_routing_get_port_mixer,
13946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013947 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013949 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13950 msm_routing_get_port_mixer,
13951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013952 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13953 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013954 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13955 msm_routing_get_port_mixer,
13956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013957 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13958 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013959 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13960 msm_routing_get_port_mixer,
13961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013962 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013964 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13965 msm_routing_get_port_mixer,
13966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013967 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013969 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13970 msm_routing_get_port_mixer,
13971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013972 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013974 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13975 msm_routing_get_port_mixer,
13976 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013977};
13978
13979static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013980 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013982 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13983 msm_routing_get_port_mixer,
13984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013985 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13986 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013987 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13988 msm_routing_get_port_mixer,
13989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013990 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13991 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013992 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13993 msm_routing_get_port_mixer,
13994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013995 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13996 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013997 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13998 msm_routing_get_port_mixer,
13999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014000 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014002 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14003 msm_routing_get_port_mixer,
14004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014005 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14006 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014007 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14008 msm_routing_get_port_mixer,
14009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014010 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14011 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014012 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14013 msm_routing_get_port_mixer,
14014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014015 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14016 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014017 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14018 msm_routing_get_port_mixer,
14019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014022 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14023 msm_routing_get_port_mixer,
14024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014025 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14026 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014027 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14028 msm_routing_get_port_mixer,
14029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014030 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14031 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014032 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14033 msm_routing_get_port_mixer,
14034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014035 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14038 msm_routing_get_port_mixer,
14039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014040 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14043 msm_routing_get_port_mixer,
14044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014045 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14046 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014047 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14048 msm_routing_get_port_mixer,
14049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014050 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14051 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014052 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14053 msm_routing_get_port_mixer,
14054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014055 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014057 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14058 msm_routing_get_port_mixer,
14059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014060 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014062 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14063 msm_routing_get_port_mixer,
14064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014065 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14066 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014067 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14068 msm_routing_get_port_mixer,
14069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014070 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14071 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014072 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14073 msm_routing_get_port_mixer,
14074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014077 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14078 msm_routing_get_port_mixer,
14079 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014080};
14081
14082static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014083 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014085 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14086 msm_routing_get_port_mixer,
14087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014088 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14089 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014090 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14091 msm_routing_get_port_mixer,
14092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014093 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14094 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014095 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14096 msm_routing_get_port_mixer,
14097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014098 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14099 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014100 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14101 msm_routing_get_port_mixer,
14102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014103 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14104 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014105 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14106 msm_routing_get_port_mixer,
14107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014108 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14109 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014110 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14111 msm_routing_get_port_mixer,
14112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014113 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14114 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014115 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14116 msm_routing_get_port_mixer,
14117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014118 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14119 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014120 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14121 msm_routing_get_port_mixer,
14122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014123 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014125 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14126 msm_routing_get_port_mixer,
14127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014128 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14129 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014130 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14131 msm_routing_get_port_mixer,
14132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014133 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14134 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014135 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14136 msm_routing_get_port_mixer,
14137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014138 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14139 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014140 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14141 msm_routing_get_port_mixer,
14142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014143 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014145 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14146 msm_routing_get_port_mixer,
14147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014148 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14149 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014150 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14151 msm_routing_get_port_mixer,
14152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014153 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014155 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14156 msm_routing_get_port_mixer,
14157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014158 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14159 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014160 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14161 msm_routing_get_port_mixer,
14162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014163 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14164 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014165 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14166 msm_routing_get_port_mixer,
14167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014168 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14169 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014170 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14171 msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014175 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14176 msm_routing_get_port_mixer,
14177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014178 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14179 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014180 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14181 msm_routing_get_port_mixer,
14182 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014183};
14184
14185static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014186 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14187 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014188 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14189 msm_routing_get_port_mixer,
14190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014191 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14192 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014193 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14194 msm_routing_get_port_mixer,
14195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014196 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014198 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14199 msm_routing_get_port_mixer,
14200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014201 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14202 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014203 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14204 msm_routing_get_port_mixer,
14205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014206 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014208 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14209 msm_routing_get_port_mixer,
14210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014211 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14212 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014213 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14214 msm_routing_get_port_mixer,
14215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014216 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14217 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014218 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14219 msm_routing_get_port_mixer,
14220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014221 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14222 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014223 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14224 msm_routing_get_port_mixer,
14225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014226 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014228 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14229 msm_routing_get_port_mixer,
14230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014231 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14232 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014233 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14234 msm_routing_get_port_mixer,
14235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014236 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14237 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014238 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14239 msm_routing_get_port_mixer,
14240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014241 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14242 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014243 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14244 msm_routing_get_port_mixer,
14245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014246 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014248 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14249 msm_routing_get_port_mixer,
14250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014251 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014253 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14254 msm_routing_get_port_mixer,
14255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014256 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14257 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014258 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14259 msm_routing_get_port_mixer,
14260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014261 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14262 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014263 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14264 msm_routing_get_port_mixer,
14265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014266 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14267 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014268 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14269 msm_routing_get_port_mixer,
14270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014271 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014273 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14274 msm_routing_get_port_mixer,
14275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014276 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14277 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014278 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14279 msm_routing_get_port_mixer,
14280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014281 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14282 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014283 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14284 msm_routing_get_port_mixer,
14285 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014286};
14287
14288static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014289 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14290 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014291 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14292 msm_routing_get_port_mixer,
14293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014294 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14295 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014296 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14297 msm_routing_get_port_mixer,
14298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014299 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14300 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014301 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14302 msm_routing_get_port_mixer,
14303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014304 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14305 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014306 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14307 msm_routing_get_port_mixer,
14308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014311 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14312 msm_routing_get_port_mixer,
14313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014314 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14315 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014316 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14317 msm_routing_get_port_mixer,
14318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014319 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14320 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014321 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14322 msm_routing_get_port_mixer,
14323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014324 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14325 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014326 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14327 msm_routing_get_port_mixer,
14328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014329 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014331 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14332 msm_routing_get_port_mixer,
14333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014334 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14335 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014336 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14337 msm_routing_get_port_mixer,
14338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014339 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14340 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014341 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14342 msm_routing_get_port_mixer,
14343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014344 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014346 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14347 msm_routing_get_port_mixer,
14348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014349 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14350 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014351 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14352 msm_routing_get_port_mixer,
14353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014354 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14355 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014356 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14357 msm_routing_get_port_mixer,
14358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014359 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014361 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14362 msm_routing_get_port_mixer,
14363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014364 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14365 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014366 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14367 msm_routing_get_port_mixer,
14368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014369 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14370 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014371 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14372 msm_routing_get_port_mixer,
14373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014376 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14377 msm_routing_get_port_mixer,
14378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014379 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14380 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014381 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14382 msm_routing_get_port_mixer,
14383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014384 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014386 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14387 msm_routing_get_port_mixer,
14388 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014389};
14390
14391static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014392 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014394 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14395 msm_routing_get_port_mixer,
14396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014397 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14398 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014399 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14400 msm_routing_get_port_mixer,
14401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014402 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14403 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014404 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14405 msm_routing_get_port_mixer,
14406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014407 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14408 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014409 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14410 msm_routing_get_port_mixer,
14411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014412 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14413 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014414 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14415 msm_routing_get_port_mixer,
14416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014417 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14418 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014419 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14420 msm_routing_get_port_mixer,
14421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014422 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14423 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014424 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14425 msm_routing_get_port_mixer,
14426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014427 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14428 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014429 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14430 msm_routing_get_port_mixer,
14431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014432 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14433 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014434 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14435 msm_routing_get_port_mixer,
14436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014437 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14438 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014439 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14440 msm_routing_get_port_mixer,
14441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014442 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14443 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014444 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14445 msm_routing_get_port_mixer,
14446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014447 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14448 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014449 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14450 msm_routing_get_port_mixer,
14451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014452 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014454 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14455 msm_routing_get_port_mixer,
14456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014457 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014459 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14460 msm_routing_get_port_mixer,
14461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014462 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14463 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014464 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14465 msm_routing_get_port_mixer,
14466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014467 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014469 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14470 msm_routing_get_port_mixer,
14471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014472 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14473 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014474 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14475 msm_routing_get_port_mixer,
14476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014477 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14478 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014479 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14480 msm_routing_get_port_mixer,
14481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014482 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14483 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014484 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14485 msm_routing_get_port_mixer,
14486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014487 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014489 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14490 msm_routing_get_port_mixer,
14491 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014492};
14493
14494static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014495 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014497 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14498 msm_routing_get_port_mixer,
14499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014500 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14501 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014502 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14503 msm_routing_get_port_mixer,
14504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014505 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014507 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14508 msm_routing_get_port_mixer,
14509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014510 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14511 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014512 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14513 msm_routing_get_port_mixer,
14514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014515 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014517 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14518 msm_routing_get_port_mixer,
14519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014520 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14521 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014522 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14523 msm_routing_get_port_mixer,
14524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014525 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14526 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014527 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14528 msm_routing_get_port_mixer,
14529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014530 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014532 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14533 msm_routing_get_port_mixer,
14534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014535 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014537 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14538 msm_routing_get_port_mixer,
14539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014540 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14541 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014542 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14543 msm_routing_get_port_mixer,
14544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014545 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14546 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014547 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14548 msm_routing_get_port_mixer,
14549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014550 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14551 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014552 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14553 msm_routing_get_port_mixer,
14554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014555 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14556 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014557 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14558 msm_routing_get_port_mixer,
14559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014562 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14563 msm_routing_get_port_mixer,
14564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014565 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14566 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014567 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14568 msm_routing_get_port_mixer,
14569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014570 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14571 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014572 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14573 msm_routing_get_port_mixer,
14574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014575 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14576 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014577 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14578 msm_routing_get_port_mixer,
14579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014582 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14583 msm_routing_get_port_mixer,
14584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014585 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14586 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014587 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14588 msm_routing_get_port_mixer,
14589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014590 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014592 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14593 msm_routing_get_port_mixer,
14594 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014595};
14596
14597static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014598 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014600 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14601 msm_routing_get_port_mixer,
14602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014603 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14604 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014605 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14606 msm_routing_get_port_mixer,
14607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014608 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014610 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14611 msm_routing_get_port_mixer,
14612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014613 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14614 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014615 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14616 msm_routing_get_port_mixer,
14617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014618 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014620 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14621 msm_routing_get_port_mixer,
14622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014623 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14624 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014625 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14626 msm_routing_get_port_mixer,
14627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014628 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014630 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14631 msm_routing_get_port_mixer,
14632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014635 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14636 msm_routing_get_port_mixer,
14637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014638 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14639 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014640 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14641 msm_routing_get_port_mixer,
14642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014643 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14644 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014645 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14646 msm_routing_get_port_mixer,
14647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014648 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14649 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014650 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14651 msm_routing_get_port_mixer,
14652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014653 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14654 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014655 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14656 msm_routing_get_port_mixer,
14657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014658 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014660 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14661 msm_routing_get_port_mixer,
14662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014663 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14664 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014665 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14666 msm_routing_get_port_mixer,
14667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014668 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14669 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014670 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14671 msm_routing_get_port_mixer,
14672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014673 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14674 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014675 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14676 msm_routing_get_port_mixer,
14677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014678 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14679 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014680 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14681 msm_routing_get_port_mixer,
14682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014683 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14684 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014685 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14686 msm_routing_get_port_mixer,
14687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014688 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14689 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014690 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14691 msm_routing_get_port_mixer,
14692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014693 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014695 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14696 msm_routing_get_port_mixer,
14697 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014698};
14699
14700static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014703 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14704 msm_routing_get_port_mixer,
14705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014706 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014708 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14709 msm_routing_get_port_mixer,
14710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014711 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014713 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14714 msm_routing_get_port_mixer,
14715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014716 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14717 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014718 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14719 msm_routing_get_port_mixer,
14720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14724 msm_routing_get_port_mixer,
14725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014728 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14729 msm_routing_get_port_mixer,
14730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014731 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014733 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14734 msm_routing_get_port_mixer,
14735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14737 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014738 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14739 msm_routing_get_port_mixer,
14740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014743 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14744 msm_routing_get_port_mixer,
14745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014746 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014748 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14749 msm_routing_get_port_mixer,
14750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014751 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14752 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014753 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14754 msm_routing_get_port_mixer,
14755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014756 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014758 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14759 msm_routing_get_port_mixer,
14760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014763 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14764 msm_routing_get_port_mixer,
14765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014766 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014768 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14769 msm_routing_get_port_mixer,
14770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014771 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14772 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014773 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14774 msm_routing_get_port_mixer,
14775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014776 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014778 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14779 msm_routing_get_port_mixer,
14780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014781 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014783 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14784 msm_routing_get_port_mixer,
14785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014786 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14787 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014788 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14789 msm_routing_get_port_mixer,
14790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014791 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14792 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014793 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14794 msm_routing_get_port_mixer,
14795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014796 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014798 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14799 msm_routing_get_port_mixer,
14800 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014801};
14802
14803static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014804 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014806 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14807 msm_routing_get_port_mixer,
14808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014809 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014811 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14812 msm_routing_get_port_mixer,
14813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014814 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14815 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014816 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14817 msm_routing_get_port_mixer,
14818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014819 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14820 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14822 msm_routing_get_port_mixer,
14823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014824 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014826 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14827 msm_routing_get_port_mixer,
14828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014831 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14832 msm_routing_get_port_mixer,
14833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14837 msm_routing_get_port_mixer,
14838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014839 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14840 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014841 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14842 msm_routing_get_port_mixer,
14843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14845 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014846 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14847 msm_routing_get_port_mixer,
14848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014849 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014851 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14852 msm_routing_get_port_mixer,
14853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014854 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14855 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014856 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14857 msm_routing_get_port_mixer,
14858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014859 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014861 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14862 msm_routing_get_port_mixer,
14863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014864 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014866 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14867 msm_routing_get_port_mixer,
14868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014869 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014871 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14872 msm_routing_get_port_mixer,
14873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014874 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014876 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14877 msm_routing_get_port_mixer,
14878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014879 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14880 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014881 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14882 msm_routing_get_port_mixer,
14883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014884 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14885 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014886 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14887 msm_routing_get_port_mixer,
14888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014889 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14890 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014891 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14892 msm_routing_get_port_mixer,
14893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014894 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14895 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014896 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14897 msm_routing_get_port_mixer,
14898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014899 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14900 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014901 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14902 msm_routing_get_port_mixer,
14903 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014904};
14905
14906static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014907 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014909 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14910 msm_routing_get_port_mixer,
14911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014912 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014914 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14915 msm_routing_get_port_mixer,
14916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014917 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14918 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014919 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14920 msm_routing_get_port_mixer,
14921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14925 msm_routing_get_port_mixer,
14926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014927 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014929 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14930 msm_routing_get_port_mixer,
14931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014932 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014934 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14935 msm_routing_get_port_mixer,
14936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014939 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14940 msm_routing_get_port_mixer,
14941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014944 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14945 msm_routing_get_port_mixer,
14946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014947 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014949 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14950 msm_routing_get_port_mixer,
14951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014952 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014954 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14955 msm_routing_get_port_mixer,
14956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014957 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14958 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014959 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14960 msm_routing_get_port_mixer,
14961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014962 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14963 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014964 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14965 msm_routing_get_port_mixer,
14966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014967 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014969 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14970 msm_routing_get_port_mixer,
14971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014974 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14975 msm_routing_get_port_mixer,
14976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014977 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14978 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014979 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14980 msm_routing_get_port_mixer,
14981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014982 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14983 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014984 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14985 msm_routing_get_port_mixer,
14986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014987 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14988 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014989 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14990 msm_routing_get_port_mixer,
14991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014992 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014994 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14995 msm_routing_get_port_mixer,
14996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014997 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14998 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014999 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15000 msm_routing_get_port_mixer,
15001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015002 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15003 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015004 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15005 msm_routing_get_port_mixer,
15006 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015007};
15008
15009static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015010 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015012 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15013 msm_routing_get_port_mixer,
15014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015015 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015017 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15018 msm_routing_get_port_mixer,
15019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015020 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015022 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15023 msm_routing_get_port_mixer,
15024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015025 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15026 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015027 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15028 msm_routing_get_port_mixer,
15029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015030 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15031 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15033 msm_routing_get_port_mixer,
15034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015035 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015037 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15038 msm_routing_get_port_mixer,
15039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015040 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15041 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015042 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15043 msm_routing_get_port_mixer,
15044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015045 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15046 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015047 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15048 msm_routing_get_port_mixer,
15049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015050 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15051 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015052 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15053 msm_routing_get_port_mixer,
15054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015055 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015057 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15058 msm_routing_get_port_mixer,
15059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015060 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15061 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015062 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15063 msm_routing_get_port_mixer,
15064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015065 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15066 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015067 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15068 msm_routing_get_port_mixer,
15069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015070 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015072 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15073 msm_routing_get_port_mixer,
15074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015075 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015077 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15078 msm_routing_get_port_mixer,
15079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015080 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15081 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015082 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15083 msm_routing_get_port_mixer,
15084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015085 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15086 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015087 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15088 msm_routing_get_port_mixer,
15089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015090 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15091 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015092 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15093 msm_routing_get_port_mixer,
15094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015095 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015097 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15098 msm_routing_get_port_mixer,
15099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015100 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15101 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015102 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15103 msm_routing_get_port_mixer,
15104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015105 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15106 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015107 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15108 msm_routing_get_port_mixer,
15109 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015110};
15111
15112static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015113 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15114 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015115 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15116 msm_routing_get_port_mixer,
15117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015118 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015120 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15121 msm_routing_get_port_mixer,
15122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015123 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15124 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015125 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15126 msm_routing_get_port_mixer,
15127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015128 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15129 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015130 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15131 msm_routing_get_port_mixer,
15132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015133 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015135 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15136 msm_routing_get_port_mixer,
15137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015138 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015140 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15141 msm_routing_get_port_mixer,
15142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015143 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15144 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015145 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15146 msm_routing_get_port_mixer,
15147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015148 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015150 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15151 msm_routing_get_port_mixer,
15152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015153 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15154 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015155 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15156 msm_routing_get_port_mixer,
15157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015158 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015160 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15161 msm_routing_get_port_mixer,
15162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015163 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15164 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015165 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15166 msm_routing_get_port_mixer,
15167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015168 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15169 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015170 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15171 msm_routing_get_port_mixer,
15172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015173 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15174 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015175 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15176 msm_routing_get_port_mixer,
15177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015178 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015180 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15181 msm_routing_get_port_mixer,
15182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015183 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015185 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15186 msm_routing_get_port_mixer,
15187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015188 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15189 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015190 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15191 msm_routing_get_port_mixer,
15192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015193 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15194 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015195 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15196 msm_routing_get_port_mixer,
15197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015198 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015200 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15201 msm_routing_get_port_mixer,
15202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015203 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15204 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015205 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15206 msm_routing_get_port_mixer,
15207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015208 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15209 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015210 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15211 msm_routing_get_port_mixer,
15212 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015213};
15214
15215static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015216 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15217 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015218 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15219 msm_routing_get_port_mixer,
15220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015221 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015223 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15224 msm_routing_get_port_mixer,
15225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015226 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15227 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015228 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15229 msm_routing_get_port_mixer,
15230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015231 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15232 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015233 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15234 msm_routing_get_port_mixer,
15235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015236 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15237 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015238 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15239 msm_routing_get_port_mixer,
15240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015241 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015243 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15244 msm_routing_get_port_mixer,
15245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015246 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15247 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015248 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15249 msm_routing_get_port_mixer,
15250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015251 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15252 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015253 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15254 msm_routing_get_port_mixer,
15255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015256 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015258 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15259 msm_routing_get_port_mixer,
15260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015261 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15262 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015263 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15264 msm_routing_get_port_mixer,
15265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015266 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15267 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015268 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15269 msm_routing_get_port_mixer,
15270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015271 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15272 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015273 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15274 msm_routing_get_port_mixer,
15275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015276 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015278 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15279 msm_routing_get_port_mixer,
15280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015281 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15282 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015283 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15284 msm_routing_get_port_mixer,
15285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015286 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15287 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015288 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15289 msm_routing_get_port_mixer,
15290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015291 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15292 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015293 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15294 msm_routing_get_port_mixer,
15295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015296 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15297 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015298 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15299 msm_routing_get_port_mixer,
15300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015301 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015303 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15304 msm_routing_get_port_mixer,
15305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015306 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15307 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015308 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15309 msm_routing_get_port_mixer,
15310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015311 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15312 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015313 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15314 msm_routing_get_port_mixer,
15315 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015316};
15317
15318static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015319 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15320 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015321 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15322 msm_routing_get_port_mixer,
15323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015324 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15325 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015326 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15327 msm_routing_get_port_mixer,
15328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015329 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15330 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015331 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15332 msm_routing_get_port_mixer,
15333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015334 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15335 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015336 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15337 msm_routing_get_port_mixer,
15338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015339 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15340 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015341 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15342 msm_routing_get_port_mixer,
15343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015344 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015346 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15347 msm_routing_get_port_mixer,
15348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015349 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15350 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015351 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15352 msm_routing_get_port_mixer,
15353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015354 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15355 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015356 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15357 msm_routing_get_port_mixer,
15358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015359 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15360 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015361 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15362 msm_routing_get_port_mixer,
15363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015364 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15365 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015366 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15367 msm_routing_get_port_mixer,
15368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015369 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15370 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015371 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15372 msm_routing_get_port_mixer,
15373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015374 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15375 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015376 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15377 msm_routing_get_port_mixer,
15378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015379 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15380 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015381 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15382 msm_routing_get_port_mixer,
15383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015384 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15385 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015386 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15387 msm_routing_get_port_mixer,
15388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015389 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015391 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15392 msm_routing_get_port_mixer,
15393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015394 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15395 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015396 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15397 msm_routing_get_port_mixer,
15398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015399 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15400 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015401 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15402 msm_routing_get_port_mixer,
15403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015404 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15405 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015406 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15407 msm_routing_get_port_mixer,
15408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015409 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015411 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15412 msm_routing_get_port_mixer,
15413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015414 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15415 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015416 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15417 msm_routing_get_port_mixer,
15418 msm_routing_put_port_mixer),
15419};
15420
15421static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015422 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15423 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015424 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15425 msm_routing_get_port_mixer,
15426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015427 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15428 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015429 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15430 msm_routing_get_port_mixer,
15431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015432 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15433 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015434 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15435 msm_routing_get_port_mixer,
15436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015437 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15438 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015439 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15440 msm_routing_get_port_mixer,
15441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015442 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15443 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015444 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15445 msm_routing_get_port_mixer,
15446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015447 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15448 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015449 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15450 msm_routing_get_port_mixer,
15451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015452 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15453 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015454 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15455 msm_routing_get_port_mixer,
15456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015457 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15458 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015459 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15460 msm_routing_get_port_mixer,
15461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015462 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15463 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015464 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15465 msm_routing_get_port_mixer,
15466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015467 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15468 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015469 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15470 msm_routing_get_port_mixer,
15471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015472 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15473 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015474 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15475 msm_routing_get_port_mixer,
15476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015477 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15478 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015479 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15480 msm_routing_get_port_mixer,
15481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015482 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15483 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015484 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15485 msm_routing_get_port_mixer,
15486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015487 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15488 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015489 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15490 msm_routing_get_port_mixer,
15491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015492 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15493 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015494 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15495 msm_routing_get_port_mixer,
15496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015497 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15498 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015499 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15500 msm_routing_get_port_mixer,
15501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015502 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15503 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015504 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15505 msm_routing_get_port_mixer,
15506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015507 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15508 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015509 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15510 msm_routing_get_port_mixer,
15511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015512 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15513 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015514 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15515 msm_routing_get_port_mixer,
15516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015517 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15518 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015519 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15520 msm_routing_get_port_mixer,
15521 msm_routing_put_port_mixer),
15522};
15523
15524static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015525 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15526 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015527 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15528 msm_routing_get_port_mixer,
15529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015530 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15531 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015532 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15533 msm_routing_get_port_mixer,
15534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015535 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15536 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015537 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15538 msm_routing_get_port_mixer,
15539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015540 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15541 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015542 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15543 msm_routing_get_port_mixer,
15544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015545 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15546 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015547 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15548 msm_routing_get_port_mixer,
15549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015550 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15551 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015552 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15553 msm_routing_get_port_mixer,
15554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015555 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15556 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015557 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15558 msm_routing_get_port_mixer,
15559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015560 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15561 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015562 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15563 msm_routing_get_port_mixer,
15564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015565 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15566 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015567 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15568 msm_routing_get_port_mixer,
15569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015570 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15571 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015572 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15573 msm_routing_get_port_mixer,
15574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015575 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15576 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015577 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15578 msm_routing_get_port_mixer,
15579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015580 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15581 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015582 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15583 msm_routing_get_port_mixer,
15584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015585 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15586 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015587 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15588 msm_routing_get_port_mixer,
15589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015590 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15591 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015592 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15593 msm_routing_get_port_mixer,
15594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015595 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15596 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015597 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15598 msm_routing_get_port_mixer,
15599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015600 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15601 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015602 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15603 msm_routing_get_port_mixer,
15604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015605 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15606 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015607 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15608 msm_routing_get_port_mixer,
15609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015610 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15611 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015612 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15613 msm_routing_get_port_mixer,
15614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015617 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15618 msm_routing_get_port_mixer,
15619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015620 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15621 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015622 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15623 msm_routing_get_port_mixer,
15624 msm_routing_put_port_mixer),
15625};
15626
15627static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015628 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15629 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015630 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15631 msm_routing_get_port_mixer,
15632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015633 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15634 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015635 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15636 msm_routing_get_port_mixer,
15637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015638 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15639 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015640 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15641 msm_routing_get_port_mixer,
15642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015643 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15644 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015645 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15646 msm_routing_get_port_mixer,
15647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015648 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15649 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015650 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15651 msm_routing_get_port_mixer,
15652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015653 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15654 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015655 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15656 msm_routing_get_port_mixer,
15657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015658 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15659 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015660 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15661 msm_routing_get_port_mixer,
15662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015663 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15664 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015665 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15666 msm_routing_get_port_mixer,
15667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015668 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15669 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015670 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15671 msm_routing_get_port_mixer,
15672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015673 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15674 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015675 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15676 msm_routing_get_port_mixer,
15677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015678 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15679 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015680 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15681 msm_routing_get_port_mixer,
15682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015683 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15684 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015685 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15686 msm_routing_get_port_mixer,
15687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015688 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15689 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015690 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15691 msm_routing_get_port_mixer,
15692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015693 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15694 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015695 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15696 msm_routing_get_port_mixer,
15697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015698 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15699 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015700 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15701 msm_routing_get_port_mixer,
15702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015703 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15704 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015705 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15706 msm_routing_get_port_mixer,
15707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015708 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15709 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015710 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15711 msm_routing_get_port_mixer,
15712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015713 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15714 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015715 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15716 msm_routing_get_port_mixer,
15717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015718 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15719 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015720 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15721 msm_routing_get_port_mixer,
15722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015723 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15724 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015725 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15726 msm_routing_get_port_mixer,
15727 msm_routing_put_port_mixer),
15728};
15729
15730static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015731 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15732 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015733 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15734 msm_routing_get_port_mixer,
15735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015736 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15737 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015738 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15739 msm_routing_get_port_mixer,
15740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015741 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15742 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015743 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15744 msm_routing_get_port_mixer,
15745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015746 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15747 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015748 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15749 msm_routing_get_port_mixer,
15750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015751 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15752 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015753 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15754 msm_routing_get_port_mixer,
15755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015756 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15757 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015758 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15759 msm_routing_get_port_mixer,
15760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015761 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15762 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015763 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15764 msm_routing_get_port_mixer,
15765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015766 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15767 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015768 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15769 msm_routing_get_port_mixer,
15770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015771 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15772 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015773 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15774 msm_routing_get_port_mixer,
15775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015776 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15777 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015778 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15779 msm_routing_get_port_mixer,
15780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015781 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15782 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015783 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15784 msm_routing_get_port_mixer,
15785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015786 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15787 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015788 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15789 msm_routing_get_port_mixer,
15790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015791 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15792 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015793 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15794 msm_routing_get_port_mixer,
15795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015796 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15797 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015798 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15799 msm_routing_get_port_mixer,
15800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015801 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15802 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015803 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15804 msm_routing_get_port_mixer,
15805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015806 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15807 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015808 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15809 msm_routing_get_port_mixer,
15810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015811 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15812 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015813 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15814 msm_routing_get_port_mixer,
15815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015816 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15817 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015818 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15819 msm_routing_get_port_mixer,
15820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015821 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15822 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015823 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15824 msm_routing_get_port_mixer,
15825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015826 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15827 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015828 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15829 msm_routing_get_port_mixer,
15830 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015831};
15832
15833static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015834 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15835 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015836 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015838 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15839 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015840 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015842 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015844 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015846 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15847 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015848 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015850 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15851 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015852 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015854 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15855 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015856 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015858 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15859 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015860 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15861 msm_routing_put_port_mixer),
15862};
15863
15864static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015865 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15866 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015867 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015869 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15870 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015871 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015873 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15874 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015875 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015877 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015881 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15882 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015883 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015885 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15886 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015887 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015889 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15890 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015891 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015893 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015895 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015897 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015899 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15900 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015901};
15902
15903static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015904 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15905 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015906 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15907 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015908 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
15909 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015910 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15911 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015914 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15915 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015916 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15917 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015918 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15919 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015920 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15921 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015922 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15923 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015924 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15925 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015926 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15927 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015928 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15929 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015930 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15931 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015932 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015934 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15935 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053015936 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15938 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15939 msm_routing_put_listen_mixer),
15940 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15942 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15943 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015944};
15945
15946static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015947 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15948 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015949 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15950 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015951 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
15952 SND_SOC_NOPM,
15953 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015954 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15955 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015956 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15957 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015958 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15959 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015960 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015962 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15963 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015964 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15965 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015966 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15967 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015968 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15969 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015970 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15971 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015972 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15973 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015974 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15975 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015976 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015978 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15979 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053015980 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15982 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15983 msm_routing_put_listen_mixer),
15984 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15985 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15986 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15987 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015988};
15989
15990static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015991 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015993 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15994 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015995 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015997 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15998 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015999 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16000 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016001 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16002 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016003 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16004 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016005 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16006 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016007 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16008 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016009 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16010 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016011 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016013 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16014 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016015 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016017 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16018 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016019 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16020 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016021 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16022 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016023 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16025 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16026 msm_routing_put_listen_mixer),
16027 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16028 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16029 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16030 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016031};
16032
16033static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016034 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16035 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016036 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16037 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016038 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16039 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016040 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16041 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016042 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16043 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016044 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16045 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016046 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016048 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16049 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016050 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16051 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016052 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16053 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016054 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16055 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016056 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16057 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016058 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016060 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16061 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016062 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16063 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016064 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16065 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016066 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16068 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16069 msm_routing_put_listen_mixer),
16070 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16071 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16072 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16073 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016074};
16075
16076static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016077 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16078 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016079 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16080 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016081 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16082 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016083 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16084 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016085 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16086 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016087 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16088 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016089 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16090 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016091 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16092 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016093 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016095 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16096 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016097 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16098 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016099 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16100 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016101 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16102 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016103 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16104 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016105 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16106 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016107 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16108 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016109 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16110 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16111 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16112 msm_routing_put_listen_mixer),
16113 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16115 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16116 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016117};
16118
16119static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016120 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16121 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016122 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16123 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016124 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16125 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016126 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16127 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016128 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16129 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016130 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16131 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016132 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16133 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016134 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16135 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016136 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016138 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16139 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016140 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16141 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016142 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16143 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016144 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16145 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016146 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16147 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016148 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16149 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016150 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16151 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016152 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16153 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16154 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16155 msm_routing_put_listen_mixer),
16156 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16158 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16159 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016160};
16161
16162static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016163 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16164 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016165 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16166 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016167 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16168 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016169 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16170 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016171 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016173 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16174 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016175 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16176 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016177 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16178 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016179 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16180 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016181 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16182 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016183 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16184 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016185 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16186 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016187 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016189 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16190 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016191 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016193 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16194 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016195 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16196 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16197 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16198 msm_routing_put_listen_mixer),
16199 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16200 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16201 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16202 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016203};
16204
16205static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016206 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016208 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16209 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016210 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16211 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016212 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16213 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016214 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16215 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016216 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16217 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016218 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16219 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016220 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16221 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016222 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16223 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016224 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16225 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016226 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16227 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016228 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16229 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016230 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16231 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016232 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16233 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016234 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016236 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16237 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016238 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16239 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16240 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16241 msm_routing_put_listen_mixer),
16242 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16243 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16244 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16245 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016246};
16247
16248static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16249 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16250 0, 1, 0, msm_routing_get_switch_mixer,
16251 msm_routing_put_switch_mixer);
16252
16253static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16254 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16255 0, 1, 0, msm_routing_get_switch_mixer,
16256 msm_routing_put_switch_mixer);
16257
16258static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16259 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16260 0, 1, 0, msm_routing_get_switch_mixer,
16261 msm_routing_put_switch_mixer);
16262
16263static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16264 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16265 0, 1, 0, msm_routing_get_switch_mixer,
16266 msm_routing_put_switch_mixer);
16267
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016268static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16269 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16270 0, 1, 0, msm_routing_get_switch_mixer,
16271 msm_routing_put_switch_mixer);
16272
16273static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016274 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16275 0, 1, 0, msm_routing_get_switch_mixer,
16276 msm_routing_put_switch_mixer);
16277
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016278static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16279 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16280 0, 1, 0, msm_routing_get_switch_mixer,
16281 msm_routing_put_switch_mixer);
16282
16283static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16284 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16285 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16286 msm_routing_put_fm_pcmrx_switch_mixer);
16287
16288static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16289 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16290 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16291 msm_routing_put_int0_mi2s_switch_mixer);
16292
16293static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16294 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16295 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16296 msm_routing_put_int4_mi2s_switch_mixer);
16297
16298static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16299 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16300 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16301 msm_routing_put_pri_mi2s_switch_mixer);
16302
16303static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16304 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16305 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16306 msm_routing_put_sec_mi2s_switch_mixer);
16307
16308static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16309 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16310 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16311 msm_routing_put_tert_mi2s_switch_mixer);
16312
16313static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16314 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16315 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16316 msm_routing_put_quat_mi2s_switch_mixer);
16317
Rohit Kumara5077932017-09-10 22:05:05 +053016318static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16319 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16320 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16321 msm_routing_put_quin_mi2s_switch_mixer);
16322
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016323static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16324 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16325 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16326 msm_routing_put_hfp_switch_mixer);
16327
16328static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16329 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16330 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16331 msm_routing_put_hfp_switch_mixer);
16332
16333static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16334 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16335 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16336 msm_routing_put_hfp_switch_mixer);
16337
16338static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16339 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16340 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16341 msm_routing_put_hfp_switch_mixer);
16342
16343static const struct snd_kcontrol_new usb_switch_mixer_controls =
16344 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16345 0, 1, 0, msm_routing_get_usb_switch_mixer,
16346 msm_routing_put_usb_switch_mixer);
16347
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016348static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16349 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16350 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16351 msm_routing_a2dp_switch_mixer_put);
16352
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016353static const struct soc_enum lsm_port_enum =
16354 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16355
16356static const char * const lsm_func_text[] = {
16357 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16358};
16359static const struct soc_enum lsm_func_enum =
16360 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16361
16362static const struct snd_kcontrol_new lsm_controls[] = {
16363 /* kcontrol of lsm_function */
16364 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16365 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16366 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16367 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16368 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16369 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16370 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16371 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16372 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16373 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16374 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16375 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16376 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16377 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16378 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16379 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16380 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16381 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16382 /* kcontrol of lsm_port */
16383 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16384 msm_routing_lsm_port_get,
16385 msm_routing_lsm_port_put),
16386 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16387 msm_routing_lsm_port_get,
16388 msm_routing_lsm_port_put),
16389 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16390 msm_routing_lsm_port_get,
16391 msm_routing_lsm_port_put),
16392 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16393 msm_routing_lsm_port_get,
16394 msm_routing_lsm_port_put),
16395 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16396 msm_routing_lsm_port_get,
16397 msm_routing_lsm_port_put),
16398 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16399 msm_routing_lsm_port_get,
16400 msm_routing_lsm_port_put),
16401 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16402 msm_routing_lsm_port_get,
16403 msm_routing_lsm_port_put),
16404 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16405 msm_routing_lsm_port_get,
16406 msm_routing_lsm_port_put),
16407};
16408
16409static const char * const aanc_slim_0_rx_text[] = {
16410 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16411 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16412};
16413
16414static const struct soc_enum aanc_slim_0_rx_enum =
16415 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16416 aanc_slim_0_rx_text);
16417
16418static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16419 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16420 msm_routing_slim_0_rx_aanc_mux_get,
16421 msm_routing_slim_0_rx_aanc_mux_put)
16422};
16423
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016424static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16425 struct snd_ctl_elem_value *ucontrol)
16426{
16427 ucontrol->value.integer.value[0] = aanc_level;
16428
16429 return 0;
16430}
16431
16432static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16433 struct snd_ctl_elem_value *ucontrol)
16434{
16435 int ret = 0;
16436
16437 mutex_lock(&routing_lock);
16438 aanc_level = ucontrol->value.integer.value[0];
16439 pr_debug("%s: value: %ld\n",
16440 __func__, ucontrol->value.integer.value[0]);
16441 ret = afe_set_aanc_noise_level(aanc_level);
16442 mutex_unlock(&routing_lock);
16443
16444 return ret;
16445}
16446
16447static const struct snd_kcontrol_new aanc_noise_level[] = {
16448 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16449 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16450};
16451
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016452static int msm_routing_get_stereo_to_custom_stereo_control(
16453 struct snd_kcontrol *kcontrol,
16454 struct snd_ctl_elem_value *ucontrol)
16455{
16456 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16457 return 0;
16458}
16459
16460static int msm_routing_put_stereo_to_custom_stereo_control(
16461 struct snd_kcontrol *kcontrol,
16462 struct snd_ctl_elem_value *ucontrol)
16463{
16464 int flag = 0, i = 0, rc = 0, idx = 0;
16465 int be_index = 0, port_id, topo_id;
16466 unsigned int session_id = 0;
16467 uint16_t op_FL_ip_FL_weight = 0;
16468 uint16_t op_FL_ip_FR_weight = 0;
16469 uint16_t op_FR_ip_FL_weight = 0;
16470 uint16_t op_FR_ip_FR_weight = 0;
16471
16472 flag = ucontrol->value.integer.value[0];
16473 pr_debug("%s E flag %d\n", __func__, flag);
16474
16475 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16476 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16477 __func__, is_custom_stereo_on, flag);
16478 return 0;
16479 }
16480 is_custom_stereo_on = flag ? true : false;
16481 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16482 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16483 port_id = msm_bedais[be_index].port_id;
16484 if (!msm_bedais[be_index].active)
16485 continue;
16486 if ((port_id != SLIMBUS_0_RX) &&
16487 (port_id != RT_PROXY_PORT_001_RX) &&
16488 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16489 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16490 continue;
16491
16492 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16493 MSM_FRONTEND_DAI_MM_SIZE) {
16494 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16495 LEGACY_PCM_MODE)
16496 goto skip_send_custom_stereo;
16497 session_id =
16498 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16499 if (is_custom_stereo_on) {
16500 op_FL_ip_FL_weight =
16501 Q14_GAIN_ZERO_POINT_FIVE;
16502 op_FL_ip_FR_weight =
16503 Q14_GAIN_ZERO_POINT_FIVE;
16504 op_FR_ip_FL_weight =
16505 Q14_GAIN_ZERO_POINT_FIVE;
16506 op_FR_ip_FR_weight =
16507 Q14_GAIN_ZERO_POINT_FIVE;
16508 } else {
16509 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16510 op_FL_ip_FR_weight = 0;
16511 op_FR_ip_FL_weight = 0;
16512 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16513 }
16514 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16515 unsigned long copp =
16516 session_copp_map[i]
16517 [SESSION_TYPE_RX][be_index];
16518 if (!test_bit(idx, &copp))
16519 goto skip_send_custom_stereo;
16520 topo_id = adm_get_topology_for_port_copp_idx(
16521 msm_bedais[be_index].port_id, idx);
16522 if (topo_id < 0)
16523 pr_debug("%s:Err:custom stereo topo %d",
16524 __func__, topo_id);
16525 pr_debug("idx %d\n", idx);
16526 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
16527 rc = msm_ds2_dap_set_custom_stereo_onoff
16528 (msm_bedais[be_index].port_id,
16529 idx, is_custom_stereo_on);
16530 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
16531 rc = dolby_dap_set_custom_stereo_onoff(
16532 msm_bedais[be_index].port_id,
16533 idx, is_custom_stereo_on);
16534 else
16535 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
16536 (msm_bedais[be_index].port_id,
16537 idx, session_id,
16538 op_FL_ip_FL_weight,
16539 op_FL_ip_FR_weight,
16540 op_FR_ip_FL_weight,
16541 op_FR_ip_FR_weight);
16542 if (rc < 0)
16543skip_send_custom_stereo:
16544 pr_err("%s: err setting custom stereo\n",
16545 __func__);
16546 }
16547
16548 }
16549 }
16550 return 0;
16551}
16552
16553static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
16554 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
16555 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
16556 msm_routing_put_stereo_to_custom_stereo_control),
16557};
16558
16559static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16560 struct snd_ctl_elem_value *ucontrol)
16561{
16562 return 0;
16563}
16564
16565static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16566 struct snd_ctl_elem_value *ucontrol)
16567{
16568 int i = 0, j;
16569 int num_app_types = ucontrol->value.integer.value[i++];
16570
16571 pr_debug("%s\n", __func__);
16572
16573 memset(app_type_cfg, 0, MAX_APP_TYPES*
16574 sizeof(struct msm_pcm_routing_app_type_data));
16575 if (num_app_types > MAX_APP_TYPES) {
16576 pr_err("%s: number of app types exceed the max supported\n",
16577 __func__);
16578 return -EINVAL;
16579 }
16580 for (j = 0; j < num_app_types; j++) {
16581 app_type_cfg[j].app_type =
16582 ucontrol->value.integer.value[i++];
16583 app_type_cfg[j].sample_rate =
16584 ucontrol->value.integer.value[i++];
16585 app_type_cfg[j].bit_width =
16586 ucontrol->value.integer.value[i++];
16587 }
16588
16589 return 0;
16590}
16591
16592static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
16593 struct snd_ctl_elem_value *ucontrol)
16594{
16595 int j, fe_id, be_id, port_type;
16596 int ret = 0;
16597 unsigned long copp;
16598 struct msm_pcm_routing_bdai_data *bedai;
16599 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16600 SESSION_TYPE_RX;
16601 int app_type = ucontrol->value.integer.value[1];
16602 int gain = (ucontrol->value.integer.value[2] +
16603 ucontrol->value.integer.value[3])/2;
16604
16605 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16606 MSM_AFE_PORT_TYPE_TX;
16607
16608 mutex_lock(&routing_lock);
16609 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16610 if (is_be_dai_extproc(be_id))
16611 continue;
16612
16613 bedai = &msm_bedais[be_id];
16614 if (afe_get_port_type(bedai->port_id) != port_type)
16615 continue;
16616
16617 if (!bedai->active)
16618 continue;
16619
16620 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16621 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16622 continue;
16623
16624 if (app_type !=
16625 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16626 continue;
16627
16628 copp = session_copp_map[fe_id][dir][be_id];
16629 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
16630 if (!test_bit(j, &copp))
16631 continue;
16632 ret |= adm_set_volume(bedai->port_id, j, gain);
16633 }
16634 }
16635 }
16636 mutex_unlock(&routing_lock);
16637 return ret ? -EINVAL : 0;
16638}
16639
16640static const struct snd_kcontrol_new app_type_cfg_controls[] = {
16641 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
16642 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
16643 msm_routing_put_app_type_cfg_control),
16644 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
16645 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
16646};
16647
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016648static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
16649 struct snd_ctl_elem_value *ucontrol)
16650{
16651 int copp_idx, fe_id, be_id, port_type;
16652 int ret = 0;
16653 unsigned long copp;
16654 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016655 u8 *packed_params = NULL;
16656 struct param_hdr_v3 param_hdr;
16657 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
16658 sizeof(uint32_t));
16659
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016660 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16661 SESSION_TYPE_RX;
16662 int app_type = ucontrol->value.integer.value[1];
16663 int module_id = ucontrol->value.integer.value[2];
16664 int instance_id = ucontrol->value.integer.value[3];
16665 int param_id = ucontrol->value.integer.value[4];
16666 int param_value = ucontrol->value.integer.value[5];
16667
16668 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16669 MSM_AFE_PORT_TYPE_TX;
16670 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
16671 __func__, app_type, module_id,
16672 instance_id, param_id, param_value);
16673
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016674 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
16675 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016676 return -ENOMEM;
16677
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016678 memset(&param_hdr, 0, sizeof(param_hdr));
16679 param_hdr.module_id = module_id;
16680 param_hdr.instance_id = instance_id;
16681 param_hdr.param_id = param_id;
16682 param_hdr.param_size = sizeof(uint32_t);
16683
16684 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016685
16686 mutex_lock(&routing_lock);
16687 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16688 if (is_be_dai_extproc(be_id))
16689 continue;
16690
16691 bedai = &msm_bedais[be_id];
16692 if (afe_get_port_type(bedai->port_id) != port_type)
16693 continue;
16694
16695 if (!bedai->active)
16696 continue;
16697
16698 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16699 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16700 continue;
16701
16702 if (app_type !=
16703 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16704 continue;
16705
16706 copp = session_copp_map[fe_id][dir][be_id];
16707 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
16708 copp_idx++) {
16709 if (!test_bit(copp_idx, &copp))
16710 continue;
16711
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016712 ret = q6common_pack_pp_params(packed_params,
16713 &param_hdr,
16714 (u8 *) &param_value,
16715 &packed_param_size);
16716 if (ret) {
16717 pr_err("%s: Failed to pack params, error %d\n",
16718 __func__, ret);
16719 goto done;
16720 }
16721
16722 ret = adm_set_pp_params(bedai->port_id,
16723 copp_idx, NULL,
16724 packed_params,
16725 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016726 if (ret) {
16727 pr_err("%s: Setting param failed with err=%d\n",
16728 __func__, ret);
16729 ret = -EINVAL;
16730 goto done;
16731 }
16732 }
16733 }
16734 }
16735done:
16736 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016737 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016738 return ret;
16739}
16740
16741static const struct snd_kcontrol_new module_cfg_controls[] = {
16742 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
16743 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
16744};
16745
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016746static int msm_routing_get_lsm_app_type_cfg_control(
16747 struct snd_kcontrol *kcontrol,
16748 struct snd_ctl_elem_value *ucontrol)
16749{
16750 return 0;
16751}
16752
16753static int msm_routing_put_lsm_app_type_cfg_control(
16754 struct snd_kcontrol *kcontrol,
16755 struct snd_ctl_elem_value *ucontrol)
16756{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016757 int shift = ((struct soc_multi_mixer_control *)
16758 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016759 int i = 0, j;
16760 int num_app_types = ucontrol->value.integer.value[i++];
16761
16762 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016763 sizeof(struct msm_pcm_routing_app_type_data));
16764
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016765 if (num_app_types > MAX_APP_TYPES) {
16766 pr_err("%s: number of app types exceed the max supported\n",
16767 __func__);
16768 return -EINVAL;
16769 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016770
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016771 for (j = 0; j < num_app_types; j++) {
16772 lsm_app_type_cfg[j].app_type =
16773 ucontrol->value.integer.value[i++];
16774 lsm_app_type_cfg[j].sample_rate =
16775 ucontrol->value.integer.value[i++];
16776 lsm_app_type_cfg[j].bit_width =
16777 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016778 /* Shift of 1 indicates this is V2 mixer control */
16779 if (shift == 1)
16780 lsm_app_type_cfg[j].num_out_channels =
16781 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016782 }
16783
16784 return 0;
16785}
16786
16787static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
16788 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
16789 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16790 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016791 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
16792 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16793 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016794};
16795
16796static int msm_routing_get_use_ds1_or_ds2_control(
16797 struct snd_kcontrol *kcontrol,
16798 struct snd_ctl_elem_value *ucontrol)
16799{
16800 ucontrol->value.integer.value[0] = is_ds2_on;
16801 return 0;
16802}
16803
16804static int msm_routing_put_use_ds1_or_ds2_control(
16805 struct snd_kcontrol *kcontrol,
16806 struct snd_ctl_elem_value *ucontrol)
16807{
16808 is_ds2_on = ucontrol->value.integer.value[0];
16809 return 0;
16810}
16811
16812static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
16813 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
16814 1, 0, msm_routing_get_use_ds1_or_ds2_control,
16815 msm_routing_put_use_ds1_or_ds2_control),
16816};
16817
16818int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
16819 struct snd_ctl_elem_value *ucontrol) {
16820 int rc = 0;
16821 int be_idx = 0;
16822 char *param_value;
16823 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016824 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
16825 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016826
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016827 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016828 if (!param_value)
16829 return -ENOMEM;
16830
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016831 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016832 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
16833 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
16834 break;
16835 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016836 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
16837 param_hdr.instance_id = INSTANCE_ID_0;
16838 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
16839 param_hdr.param_size = param_size;
16840 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
16841 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016842 if (rc) {
16843 pr_err("%s: get parameters failed:%d\n", __func__, rc);
16844 kfree(param_value);
16845 return -EINVAL;
16846 }
16847 update_param_value = (int *)param_value;
16848 ucontrol->value.integer.value[0] = update_param_value[0];
16849
16850 pr_debug("%s: FROM DSP value[0] 0x%x\n",
16851 __func__, update_param_value[0]);
16852 }
16853 kfree(param_value);
16854 return 0;
16855}
16856
16857static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
16858 struct snd_ctl_elem_value *ucontrol)
16859{
16860 voc_session_id = ucontrol->value.integer.value[0];
16861
16862 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
16863
16864 return 0;
16865}
16866
16867static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
16868 struct snd_ctl_elem_value *ucontrol)
16869{
16870 ucontrol->value.integer.value[0] = voc_session_id;
16871
16872 return 0;
16873}
16874
16875static struct snd_kcontrol_new msm_voc_session_controls[] = {
16876 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
16877 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
16878 msm_voc_session_id_put),
16879};
16880
16881static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
16882 struct snd_ctl_elem_info *uinfo)
16883{
16884 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16885 uinfo->count = sizeof(struct sound_focus_param);
16886
16887 return 0;
16888}
16889
16890static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
16891 struct snd_ctl_elem_value *ucontrol)
16892{
16893 int ret = 0;
16894 struct sound_focus_param soundFocusData;
16895
16896 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
16897 sizeof(struct sound_focus_param));
16898 ret = voc_set_sound_focus(soundFocusData);
16899 if (ret) {
16900 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
16901 __func__, ret);
16902
16903 ret = -EINVAL;
16904 }
16905
16906 return ret;
16907}
16908
16909static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
16910 struct snd_ctl_elem_value *ucontrol)
16911{
16912 int ret = 0;
16913 struct sound_focus_param soundFocusData;
16914
16915 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
16916
16917 ret = voc_get_sound_focus(&soundFocusData);
16918 if (ret) {
16919 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
16920 __func__, ret);
16921
16922 ret = -EINVAL;
16923 goto done;
16924 }
16925 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
16926 sizeof(struct sound_focus_param));
16927
16928done:
16929 return ret;
16930}
16931
16932static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
16933 struct snd_ctl_elem_info *uinfo)
16934{
16935 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16936 uinfo->count = sizeof(struct source_tracking_param);
16937
16938 return 0;
16939}
16940
16941static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
16942 struct snd_ctl_elem_value *ucontrol)
16943{
Meng Wang92edfde2018-04-24 12:18:37 +080016944 int ret = 0;
16945 struct source_tracking_param sourceTrackingData;
16946
16947 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
16948
16949 ret = voc_get_source_tracking(&sourceTrackingData);
16950 if (ret) {
16951 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
16952 __func__, ret);
16953
16954 ret = -EINVAL;
16955 goto done;
16956 }
16957 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
16958 sizeof(struct source_tracking_param));
16959
16960done:
16961 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016962}
16963
16964static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
16965 int *copp_idx)
16966{
16967 int i, idx, be_idx;
16968 int ret = 0;
16969 unsigned long copp;
16970
16971 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
16972
16973 ret = q6audio_validate_port(port_id);
16974 if (ret < 0) {
16975 pr_err("%s: port validation failed id 0x%x ret %d\n",
16976 __func__, port_id, ret);
16977
16978 ret = -EINVAL;
16979 goto done;
16980 }
16981
16982 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
16983 if (msm_bedais[be_idx].port_id == port_id)
16984 break;
16985 }
16986 if (be_idx >= MSM_BACKEND_DAI_MAX) {
16987 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
16988
16989 ret = -EINVAL;
16990 goto done;
16991 }
16992
16993 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
16994 MSM_FRONTEND_DAI_MM_SIZE) {
16995 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16996 copp = session_copp_map[i]
16997 [session_type][be_idx];
16998 if (test_bit(idx, &copp))
16999 break;
17000 }
17001 if (idx >= MAX_COPPS_PER_PORT)
17002 continue;
17003 else
17004 break;
17005 }
17006 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
17007 pr_err("%s: Invalid FE, exiting\n", __func__);
17008
17009 ret = -EINVAL;
17010 goto done;
17011 }
17012 *copp_idx = idx;
17013 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17014
17015done:
17016 return ret;
17017}
17018
17019static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17020 const char *prefix, int *port_id)
17021{
17022 int ret = 0;
17023
17024 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17025
17026 /*
17027 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17028 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17029 * and compare the string with the backend name to derive the port id.
17030 */
17031 if (!strcmp(kcontrol->id.name + strlen(prefix),
17032 "SLIMBUS_0")) {
17033 *port_id = SLIMBUS_0_TX;
17034 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17035 "TERT_MI2S")) {
17036 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17037 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17038 "INT3_MI2S")) {
17039 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
17040 } else {
17041 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17042 __func__, kcontrol->id.name);
17043
17044 ret = -EINVAL;
17045 goto done;
17046 }
17047 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17048 __func__, kcontrol->id.name, *port_id);
17049
17050done:
17051 return ret;
17052}
17053
17054static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17055 struct snd_ctl_elem_value *ucontrol)
17056{
17057 int ret = 0;
17058 struct sound_focus_param soundFocusData;
17059 int port_id, copp_idx;
17060
17061 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17062 "Sound Focus Audio Tx ", &port_id);
17063 if (ret != 0) {
17064 pr_err("%s: Error in deriving port id, err=%d\n",
17065 __func__, ret);
17066
17067 ret = -EINVAL;
17068 goto done;
17069 }
17070
17071 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17072 &copp_idx);
17073 if (ret) {
17074 pr_err("%s: Could not get copp idx for port_id=%d\n",
17075 __func__, port_id);
17076
17077 ret = -EINVAL;
17078 goto done;
17079 }
17080
17081 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17082 sizeof(struct sound_focus_param));
17083
17084 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17085 if (ret) {
17086 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17087 __func__, ret);
17088
17089 ret = -EINVAL;
17090 goto done;
17091 }
17092
17093done:
17094 return ret;
17095}
17096
17097static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17098 struct snd_ctl_elem_value *ucontrol)
17099{
17100 int ret = 0;
17101 struct sound_focus_param soundFocusData;
17102 int port_id, copp_idx;
17103
17104 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17105 "Sound Focus Audio Tx ", &port_id);
17106 if (ret) {
17107 pr_err("%s: Error in deriving port id, err=%d\n",
17108 __func__, ret);
17109
17110 ret = -EINVAL;
17111 goto done;
17112 }
17113
17114 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17115 &copp_idx);
17116 if (ret) {
17117 pr_err("%s: Could not get copp idx for port_id=%d\n",
17118 __func__, port_id);
17119
17120 ret = -EINVAL;
17121 goto done;
17122 }
17123
17124 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17125 if (ret) {
17126 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17127 __func__, ret);
17128
17129 ret = -EINVAL;
17130 goto done;
17131 }
17132
17133 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17134 sizeof(struct sound_focus_param));
17135
17136done:
17137 return ret;
17138}
17139
17140static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17141 struct snd_ctl_elem_value *ucontrol)
17142{
17143 int ret = 0;
17144 struct source_tracking_param sourceTrackingData;
17145 int port_id, copp_idx;
17146
17147 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17148 "Source Tracking Audio Tx ", &port_id);
17149 if (ret) {
17150 pr_err("%s: Error in deriving port id, err=%d\n",
17151 __func__, ret);
17152
17153 ret = -EINVAL;
17154 goto done;
17155 }
17156
17157 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17158 &copp_idx);
17159 if (ret) {
17160 pr_err("%s: Could not get copp idx for port_id=%d\n",
17161 __func__, port_id);
17162
17163 ret = -EINVAL;
17164 goto done;
17165 }
17166
17167 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17168 if (ret) {
17169 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17170 __func__, ret);
17171
17172 ret = -EINVAL;
17173 goto done;
17174 }
17175
17176 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17177 sizeof(struct source_tracking_param));
17178
17179done:
17180 return ret;
17181}
17182
17183static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17184 {
17185 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17186 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17187 .name = "Sound Focus Voice Tx SLIMBUS_0",
17188 .info = msm_sound_focus_info,
17189 .get = msm_voice_sound_focus_get,
17190 .put = msm_voice_sound_focus_put,
17191 },
17192 {
17193 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17194 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17195 .name = "Source Tracking Voice Tx SLIMBUS_0",
17196 .info = msm_source_tracking_info,
17197 .get = msm_voice_source_tracking_get,
17198 },
17199 {
17200 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17201 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17202 .name = "Sound Focus Audio Tx SLIMBUS_0",
17203 .info = msm_sound_focus_info,
17204 .get = msm_audio_sound_focus_get,
17205 .put = msm_audio_sound_focus_put,
17206 },
17207 {
17208 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17209 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17210 .name = "Source Tracking Audio Tx SLIMBUS_0",
17211 .info = msm_source_tracking_info,
17212 .get = msm_audio_source_tracking_get,
17213 },
17214 {
17215 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17216 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17217 .name = "Sound Focus Voice Tx TERT_MI2S",
17218 .info = msm_sound_focus_info,
17219 .get = msm_voice_sound_focus_get,
17220 .put = msm_voice_sound_focus_put,
17221 },
17222 {
17223 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17224 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17225 .name = "Source Tracking Voice Tx TERT_MI2S",
17226 .info = msm_source_tracking_info,
17227 .get = msm_voice_source_tracking_get,
17228 },
17229 {
17230 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17231 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17232 .name = "Sound Focus Audio Tx TERT_MI2S",
17233 .info = msm_sound_focus_info,
17234 .get = msm_audio_sound_focus_get,
17235 .put = msm_audio_sound_focus_put,
17236 },
17237 {
17238 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17239 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17240 .name = "Source Tracking Audio Tx TERT_MI2S",
17241 .info = msm_source_tracking_info,
17242 .get = msm_audio_source_tracking_get,
17243 },
17244 {
17245 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17246 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17247 .name = "Sound Focus Voice Tx INT3_MI2S",
17248 .info = msm_sound_focus_info,
17249 .get = msm_voice_sound_focus_get,
17250 .put = msm_voice_sound_focus_put,
17251 },
17252 {
17253 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17254 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17255 .name = "Source Tracking Voice Tx INT3_MI2S",
17256 .info = msm_source_tracking_info,
17257 .get = msm_voice_source_tracking_get,
17258 },
17259 {
17260 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17261 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17262 .name = "Sound Focus Audio Tx INT3_MI2S",
17263 .info = msm_sound_focus_info,
17264 .get = msm_audio_sound_focus_get,
17265 .put = msm_audio_sound_focus_put,
17266 },
17267 {
17268 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17269 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17270 .name = "Source Tracking Audio Tx INT3_MI2S",
17271 .info = msm_source_tracking_info,
17272 .get = msm_audio_source_tracking_get,
17273 },
17274};
17275
17276static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17277 struct snd_ctl_elem_value *ucontrol)
17278{
17279 int ret = 0;
17280 int item;
17281 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17282
17283 pr_debug("%s item is %d\n", __func__,
17284 ucontrol->value.enumerated.item[0]);
17285 mutex_lock(&routing_lock);
17286 item = ucontrol->value.enumerated.item[0];
17287 if (item < e->items) {
17288 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17289 __func__, e->shift_l, e->values[item]);
17290 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17291 e->values[item] < MSM_BACKEND_DAI_MAX)
17292 /* Enable feedback TX path */
17293 ret = afe_spk_prot_feed_back_cfg(
17294 msm_bedais[e->values[item]].port_id,
17295 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17296 else {
17297 pr_debug("%s values are out of range item %d\n",
17298 __func__, e->values[item]);
17299 /* Disable feedback TX path */
17300 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17301 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17302 else
17303 ret = -EINVAL;
17304 }
17305 } else {
17306 pr_err("%s item value is out of range item\n", __func__);
17307 ret = -EINVAL;
17308 }
17309 mutex_unlock(&routing_lock);
17310 return ret;
17311}
17312
17313static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17314 struct snd_ctl_elem_value *ucontrol)
17315{
17316 int ret = 0;
17317 int item;
17318 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17319
17320 pr_debug("%s item is %d\n", __func__,
17321 ucontrol->value.enumerated.item[0]);
17322 mutex_lock(&routing_lock);
17323 item = ucontrol->value.enumerated.item[0];
17324 if (item < e->items) {
17325 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17326 __func__, e->shift_l, e->values[item]);
17327 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17328 e->values[item] < MSM_BACKEND_DAI_MAX)
17329 /* Enable feedback TX path */
17330 ret = afe_spk_prot_feed_back_cfg(
17331 msm_bedais[e->values[item]].port_id,
17332 msm_bedais[e->shift_l].port_id,
17333 1, 1, 1);
17334 else {
17335 pr_debug("%s values are out of range item %d\n",
17336 __func__, e->values[item]);
17337 /* Disable feedback TX path */
17338 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17339 ret = afe_spk_prot_feed_back_cfg(0,
17340 0, 0, 0, 0);
17341 else
17342 ret = -EINVAL;
17343 }
17344 } else {
17345 pr_err("%s item value is out of range item\n", __func__);
17346 ret = -EINVAL;
17347 }
17348 mutex_unlock(&routing_lock);
17349 return ret;
17350}
17351
17352static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17353 struct snd_ctl_elem_value *ucontrol)
17354{
17355 pr_debug("%s\n", __func__);
17356 return 0;
17357}
17358
17359static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17360 struct snd_ctl_elem_value *ucontrol)
17361{
17362 pr_debug("%s\n", __func__);
17363 ucontrol->value.enumerated.item[0] = 0;
17364 return 0;
17365}
17366
17367static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17368 "ZERO", "SLIM4_TX"
17369};
17370
17371static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17372 "ZERO", "SLIM4_TX"
17373};
17374
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017375static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17376 "ZERO", "WSA_CDC_DMA_TX_0"
17377};
17378
17379static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17380 "ZERO", "WSA_CDC_DMA_TX_0"
17381};
17382
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017383static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17384 "ZERO", "SENARY_TX"
17385};
17386
17387static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17388 "ZERO", "INT5_MI2S_TX"
17389};
17390
17391static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17392 "ZERO", "INT5_MI2S_TX"
17393};
17394
17395static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17396 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17397};
17398
17399static const int const slim0_rx_vi_fb_tx_rch_value[] = {
17400 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17401};
17402
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017403static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
17404 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17405};
17406
17407static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
17408 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17409};
17410
17411
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017412static const int const mi2s_rx_vi_fb_tx_value[] = {
17413 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
17414};
17415
17416static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
17417 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17418};
17419
17420static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
17421 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17422};
17423
17424static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
17425 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17426 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
17427 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
17428
17429static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
17430 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17431 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
17432 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
17433
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017434static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
17435 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17436 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
17437 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
17438
17439static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
17440 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17441 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
17442 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
17443
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017444static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
17445 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
17446 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
17447 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
17448
17449static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
17450 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17451 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
17452 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
17453 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
17454
17455static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
17456 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17457 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
17458 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
17459 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
17460
17461static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
17462 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
17463 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17464 spkr_prot_put_vi_lch_port);
17465
17466static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
17467 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
17468 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17469 spkr_prot_put_vi_rch_port);
17470
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017471static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
17472 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
17473 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17474 spkr_prot_put_vi_lch_port);
17475
17476static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
17477 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
17478 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17479 spkr_prot_put_vi_rch_port);
17480
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017481static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
17482 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
17483 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
17484 spkr_prot_put_vi_lch_port);
17485
17486static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
17487 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
17488 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
17489 spkr_prot_put_vi_lch_port);
17490
17491static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
17492 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
17493 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
17494 spkr_prot_put_vi_rch_port);
17495
17496static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
17497 /* Frontend AIF */
17498 /* Widget name equals to Front-End DAI name<Need confirmation>,
17499 * Stream name must contains substring of front-end dai name
17500 */
17501 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
17502 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
17503 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
17504 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
17505 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
17506 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
17507 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
17508 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
17509 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
17510 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
17511 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
17512 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
17513 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
17514 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
17515 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
17516 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
17517 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017518 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017519 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
17520 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
17521 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
17522 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
17523 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
17524 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
17525 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
17526 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
17527 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053017528 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053017529 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017530 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
17531 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
17532 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
17533 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017534 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080017535 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
17536 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017537 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
17538 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
17539 "VoiceMMode1 Playback", 0, 0, 0, 0),
17540 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
17541 "VoiceMMode1 Capture", 0, 0, 0, 0),
17542 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
17543 "VoiceMMode2 Playback", 0, 0, 0, 0),
17544 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
17545 "VoiceMMode2 Capture", 0, 0, 0, 0),
17546 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
17547 0, 0, 0, 0),
17548 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
17549 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017550 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
17551 0, 0, 0, 0),
17552 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
17553 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053017554 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
17555 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017556 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
17557 0, 0, 0, 0),
17558 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
17559 0, 0, 0, 0),
17560 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
17561 0, 0, 0, 0),
17562 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
17563 0, 0, 0, 0),
17564 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
17565 0, 0, 0, 0),
17566 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
17567 0, 0, 0, 0),
17568 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
17569 0, 0, 0, 0),
17570 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
17571 0, 0, 0, 0),
17572 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
17573 0, 0, 0, 0),
17574 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
17575 0, 0, 0, 0),
17576 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
17577 0, 0, 0, 0),
17578 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
17579 0, 0, 0, 0),
17580 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
17581 0, 0, 0, 0),
17582 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
17583 0, 0, 0, 0),
17584 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
17585 0, 0, 0, 0),
17586 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
17587 0, 0, 0, 0),
17588 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
17589 0, 0, 0, 0),
17590 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
17591 0, 0, 0, 0),
17592 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
17593 0, 0, 0, 0),
17594 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
17595 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
17596 0, 0, 0, 0),
17597 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
17598 "INT0 MI2S_RX Hostless Playback",
17599 0, 0, 0, 0),
17600 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
17601 "INT4 MI2S_RX Hostless Playback",
17602 0, 0, 0, 0),
17603 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
17604 "Primary MI2S_RX Hostless Playback",
17605 0, 0, 0, 0),
17606 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
17607 "Secondary MI2S_RX Hostless Playback",
17608 0, 0, 0, 0),
17609 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
17610 "Tertiary MI2S_RX Hostless Playback",
17611 0, 0, 0, 0),
17612 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
17613 "Quaternary MI2S_RX Hostless Playback",
17614 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017615 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
17616 "Quinary MI2S_RX Hostless Playback",
17617 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017618
17619 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
17620 0, 0, 0, 0),
17621 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
17622 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017623 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
17624 0, 0, 0, 0),
17625 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
17626 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017627 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
17628 0, 0, 0, 0),
17629 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
17630 "INT3 MI2S_TX Hostless Capture",
17631 0, 0, 0, 0),
17632 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
17633 "Tertiary MI2S_TX Hostless Capture",
17634 0, 0, 0, 0),
17635 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
17636 "Secondary MI2S_TX Hostless Capture",
17637 0, 0, 0, 0),
17638 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
17639 "Primary MI2S_TX Hostless Capture",
17640 0, 0, 0, 0),
17641 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
17642 0, 0, 0, 0),
17643 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
17644 0, 0, 0, 0),
17645 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
17646 "Quaternary MI2S_TX Hostless Capture",
17647 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017648 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
17649 "Quinary MI2S_TX Hostless Capture",
17650 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017651
17652 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
17653 "Primary TDM0 Hostless Playback",
17654 0, 0, 0, 0),
17655 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
17656 "Primary TDM0 Hostless Capture",
17657 0, 0, 0, 0),
17658 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
17659 "Primary TDM1 Hostless Playback",
17660 0, 0, 0, 0),
17661 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
17662 "Primary TDM1 Hostless Capture",
17663 0, 0, 0, 0),
17664 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
17665 "Primary TDM2 Hostless Playback",
17666 0, 0, 0, 0),
17667 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
17668 "Primary TDM2 Hostless Capture",
17669 0, 0, 0, 0),
17670 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
17671 "Primary TDM3 Hostless Playback",
17672 0, 0, 0, 0),
17673 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
17674 "Primary TDM3 Hostless Capture",
17675 0, 0, 0, 0),
17676 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
17677 "Primary TDM4 Hostless Playback",
17678 0, 0, 0, 0),
17679 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
17680 "Primary TDM4 Hostless Capture",
17681 0, 0, 0, 0),
17682 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
17683 "Primary TDM5 Hostless Playback",
17684 0, 0, 0, 0),
17685 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
17686 "Primary TDM5 Hostless Capture",
17687 0, 0, 0, 0),
17688 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
17689 "Primary TDM6 Hostless Playback",
17690 0, 0, 0, 0),
17691 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
17692 "Primary TDM6 Hostless Capture",
17693 0, 0, 0, 0),
17694 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
17695 "Primary TDM7 Hostless Playback",
17696 0, 0, 0, 0),
17697 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
17698 "Primary TDM7 Hostless Capture",
17699 0, 0, 0, 0),
17700 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
17701 "Secondary TDM0 Hostless Playback",
17702 0, 0, 0, 0),
17703 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
17704 "Secondary TDM0 Hostless Capture",
17705 0, 0, 0, 0),
17706 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
17707 "Secondary TDM1 Hostless Playback",
17708 0, 0, 0, 0),
17709 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
17710 "Secondary TDM1 Hostless Capture",
17711 0, 0, 0, 0),
17712 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
17713 "Secondary TDM2 Hostless Playback",
17714 0, 0, 0, 0),
17715 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
17716 "Secondary TDM2 Hostless Capture",
17717 0, 0, 0, 0),
17718 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
17719 "Secondary TDM3 Hostless Playback",
17720 0, 0, 0, 0),
17721 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
17722 "Secondary TDM3 Hostless Capture",
17723 0, 0, 0, 0),
17724 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
17725 "Secondary TDM4 Hostless Playback",
17726 0, 0, 0, 0),
17727 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
17728 "Secondary TDM4 Hostless Capture",
17729 0, 0, 0, 0),
17730 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
17731 "Secondary TDM5 Hostless Playback",
17732 0, 0, 0, 0),
17733 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
17734 "Secondary TDM5 Hostless Capture",
17735 0, 0, 0, 0),
17736 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
17737 "Secondary TDM6 Hostless Playback",
17738 0, 0, 0, 0),
17739 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
17740 "Secondary TDM6 Hostless Capture",
17741 0, 0, 0, 0),
17742 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
17743 "Secondary TDM7 Hostless Playback",
17744 0, 0, 0, 0),
17745 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
17746 "Secondary TDM7 Hostless Capture",
17747 0, 0, 0, 0),
17748 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
17749 "Tertiary TDM0 Hostless Playback",
17750 0, 0, 0, 0),
17751 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
17752 "Tertiary TDM0 Hostless Capture",
17753 0, 0, 0, 0),
17754 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
17755 "Tertiary TDM1 Hostless Playback",
17756 0, 0, 0, 0),
17757 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
17758 "Tertiary TDM1 Hostless Capture",
17759 0, 0, 0, 0),
17760 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
17761 "Tertiary TDM2 Hostless Playback",
17762 0, 0, 0, 0),
17763 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
17764 "Tertiary TDM2 Hostless Capture",
17765 0, 0, 0, 0),
17766 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
17767 "Tertiary TDM3 Hostless Playback",
17768 0, 0, 0, 0),
17769 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
17770 "Tertiary TDM3 Hostless Capture",
17771 0, 0, 0, 0),
17772 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
17773 "Tertiary TDM4 Hostless Playback",
17774 0, 0, 0, 0),
17775 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
17776 "Tertiary TDM4 Hostless Capture",
17777 0, 0, 0, 0),
17778 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
17779 "Tertiary TDM5 Hostless Playback",
17780 0, 0, 0, 0),
17781 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
17782 "Tertiary TDM5 Hostless Capture",
17783 0, 0, 0, 0),
17784 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
17785 "Tertiary TDM6 Hostless Playback",
17786 0, 0, 0, 0),
17787 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
17788 "Tertiary TDM6 Hostless Capture",
17789 0, 0, 0, 0),
17790 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
17791 "Tertiary TDM7 Hostless Playback",
17792 0, 0, 0, 0),
17793 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
17794 "Tertiary TDM7 Hostless Capture",
17795 0, 0, 0, 0),
17796 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
17797 "Quaternary TDM0 Hostless Playback",
17798 0, 0, 0, 0),
17799 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
17800 "Quaternary TDM0 Hostless Capture",
17801 0, 0, 0, 0),
17802 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
17803 "Quaternary TDM1 Hostless Playback",
17804 0, 0, 0, 0),
17805 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
17806 "Quaternary TDM1 Hostless Capture",
17807 0, 0, 0, 0),
17808 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
17809 "Quaternary TDM2 Hostless Playback",
17810 0, 0, 0, 0),
17811 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
17812 "Quaternary TDM2 Hostless Capture",
17813 0, 0, 0, 0),
17814 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
17815 "Quaternary TDM3 Hostless Playback",
17816 0, 0, 0, 0),
17817 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
17818 "Quaternary TDM3 Hostless Capture",
17819 0, 0, 0, 0),
17820 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
17821 "Quaternary TDM4 Hostless Playback",
17822 0, 0, 0, 0),
17823 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
17824 "Quaternary TDM4 Hostless Capture",
17825 0, 0, 0, 0),
17826 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
17827 "Quaternary TDM5 Hostless Playback",
17828 0, 0, 0, 0),
17829 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
17830 "Quaternary TDM5 Hostless Capture",
17831 0, 0, 0, 0),
17832 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
17833 "Quaternary TDM6 Hostless Playback",
17834 0, 0, 0, 0),
17835 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
17836 "Quaternary TDM6 Hostless Capture",
17837 0, 0, 0, 0),
17838 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
17839 "Quaternary TDM7 Hostless Playback",
17840 0, 0, 0, 0),
17841 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
17842 "Quaternary TDM7 Hostless Capture",
17843 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017844 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
17845 "Quinary TDM0 Hostless Playback",
17846 0, 0, 0, 0),
17847 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
17848 "Quinary TDM0 Hostless Capture",
17849 0, 0, 0, 0),
17850 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
17851 "Quinary TDM1 Hostless Playback",
17852 0, 0, 0, 0),
17853 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
17854 "Quinary TDM1 Hostless Capture",
17855 0, 0, 0, 0),
17856 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
17857 "Quinary TDM2 Hostless Playback",
17858 0, 0, 0, 0),
17859 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
17860 "Quinary TDM2 Hostless Capture",
17861 0, 0, 0, 0),
17862 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
17863 "Quinary TDM3 Hostless Playback",
17864 0, 0, 0, 0),
17865 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
17866 "Quinary TDM3 Hostless Capture",
17867 0, 0, 0, 0),
17868 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
17869 "Quinary TDM4 Hostless Playback",
17870 0, 0, 0, 0),
17871 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
17872 "Quinary TDM4 Hostless Capture",
17873 0, 0, 0, 0),
17874 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
17875 "Quinary TDM5 Hostless Playback",
17876 0, 0, 0, 0),
17877 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
17878 "Quinary TDM5 Hostless Capture",
17879 0, 0, 0, 0),
17880 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
17881 "Quinary TDM6 Hostless Playback",
17882 0, 0, 0, 0),
17883 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
17884 "Quinary TDM6 Hostless Capture",
17885 0, 0, 0, 0),
17886 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
17887 "Quinary TDM7 Hostless Playback",
17888 0, 0, 0, 0),
17889 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
17890 "Quinary TDM7 Hostless Capture",
17891 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017892
17893 /* LSM */
17894 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
17895 0, 0, 0, 0),
17896 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
17897 0, 0, 0, 0),
17898 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
17899 0, 0, 0, 0),
17900 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
17901 0, 0, 0, 0),
17902 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
17903 0, 0, 0, 0),
17904 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
17905 0, 0, 0, 0),
17906 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
17907 0, 0, 0, 0),
17908 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
17909 0, 0, 0, 0),
17910 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
17911 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
17912 /* Backend AIF */
17913 /* Stream name equals to backend dai link stream name */
17914 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
17915 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
17916 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020017917 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
17918 0, 0, 0, 0),
17919 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
17920 0, 0, 0, 0),
17921 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
17922 0, 0, 0, 0),
17923 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
17924 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017925 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
17926 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
17927 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
17928 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
17929 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
17930 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070017931 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
17932 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017933 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
17934 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
17935 0, 0, 0, 0),
17936 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
17937 0, 0, 0, 0),
17938 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
17939 0, 0, 0, 0),
17940 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
17941 "Secondary MI2S Playback SD1",
17942 0, 0, 0, 0),
17943 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
17944 0, 0, 0, 0),
17945 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
17946 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053017947 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
17948 0, 0, 0, 0),
17949 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
17950 0, 0, 0, 0),
17951 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
17952 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017953 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
17954 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053017955 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
17956 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017957 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
17958 0, 0, 0, 0),
17959 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
17960 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
17961 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
17962 0, 0, 0, 0),
17963 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
17964 0, 0, 0, 0),
17965 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
17966 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053017967 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
17968 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017969 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
17970 0, 0, 0, 0),
17971 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
17972 0, 0, 0, 0),
17973 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
17974 0, 0, 0, 0),
17975 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
17976 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
17977 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
17978 0, 0, 0, 0),
17979 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
17980 0, 0, 0, 0),
17981 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
17982 0, 0, 0, 0),
17983 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
17984 0, 0, 0, 0),
17985 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
17986 0, 0, 0, 0),
17987 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
17988 0, 0, 0, 0),
17989 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
17990 0, 0, 0, 0),
17991 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
17992 0, 0, 0, 0),
17993 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
17994 0, 0, 0, 0),
17995 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
17996 0, 0, 0, 0),
17997 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
17998 0, 0, 0, 0),
17999 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18000 0, 0, 0, 0),
18001 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18002 0, 0, 0, 0),
18003 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18004 0, 0, 0, 0),
18005 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18006 0, 0, 0, 0),
18007 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18008 0, 0, 0, 0),
18009 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18010 0, 0, 0, 0),
18011 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18012 0, 0, 0, 0),
18013 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18014 0, 0, 0, 0),
18015 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18016 0, 0, 0, 0),
18017 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18018 0, 0, 0, 0),
18019 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18020 0, 0, 0, 0),
18021 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18022 0, 0, 0, 0),
18023 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18024 0, 0, 0, 0),
18025 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18026 0, 0, 0, 0),
18027 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18028 0, 0, 0, 0),
18029 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18030 0, 0, 0, 0),
18031 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18032 0, 0, 0, 0),
18033 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18034 0, 0, 0, 0),
18035 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18036 0, 0, 0, 0),
18037 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18038 0, 0, 0, 0),
18039 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18040 0, 0, 0, 0),
18041 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18042 0, 0, 0, 0),
18043 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18044 0, 0, 0, 0),
18045 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18046 0, 0, 0, 0),
18047 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18048 0, 0, 0, 0),
18049 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18050 0, 0, 0, 0),
18051 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18052 0, 0, 0, 0),
18053 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18054 0, 0, 0, 0),
18055 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18056 0, 0, 0, 0),
18057 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18058 0, 0, 0, 0),
18059 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18060 0, 0, 0, 0),
18061 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18062 0, 0, 0, 0),
18063 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18064 0, 0, 0, 0),
18065 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18066 0, 0, 0, 0),
18067 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18068 0, 0, 0, 0),
18069 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18070 0, 0, 0, 0),
18071 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18072 0, 0, 0, 0),
18073 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18074 0, 0, 0, 0),
18075 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18076 0, 0, 0, 0),
18077 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18078 0, 0, 0, 0),
18079 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18080 0, 0, 0, 0),
18081 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18082 0, 0, 0, 0),
18083 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18084 0, 0, 0, 0),
18085 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18086 0, 0, 0, 0),
18087 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18088 0, 0, 0, 0),
18089 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18090 0, 0, 0, 0),
18091 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18092 0, 0, 0, 0),
18093 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18094 0, 0, 0, 0),
18095 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18096 0, 0, 0, 0),
18097 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18098 0, 0, 0, 0),
18099 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18100 0, 0, 0, 0),
18101 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18102 0, 0, 0, 0),
18103 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18104 0, 0, 0, 0),
18105 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18106 0, 0, 0, 0),
18107 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18108 0, 0, 0, 0),
18109 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18110 0, 0, 0, 0),
18111 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18112 0, 0, 0, 0),
18113 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18114 0, 0, 0, 0),
18115 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18116 0, 0, 0, 0),
18117 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18118 0, 0, 0, 0),
18119 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18120 0, 0, 0, 0),
18121 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18122 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018123 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18124 0, 0, 0, 0),
18125 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18126 0, 0, 0, 0),
18127 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18128 0, 0, 0, 0),
18129 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18130 0, 0, 0, 0),
18131 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18132 0, 0, 0, 0),
18133 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18134 0, 0, 0, 0),
18135 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18136 0, 0, 0, 0),
18137 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18138 0, 0, 0, 0),
18139 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18140 0, 0, 0, 0),
18141 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18142 0, 0, 0, 0),
18143 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18144 0, 0, 0, 0),
18145 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18146 0, 0, 0, 0),
18147 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18148 0, 0, 0, 0),
18149 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18150 0, 0, 0, 0),
18151 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18152 0, 0, 0, 0),
18153 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18154 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018155 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18156 0, 0, 0, 0),
18157 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18158 0, 0, 0, 0),
18159 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18160 0, 0, 0, 0),
18161 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18162 0, 0, 0, 0),
18163 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18164 0, 0, 0, 0),
18165 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18166 0, 0, 0, 0),
18167 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18168 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018169 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18170 0, 0, 0, 0),
18171 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18172 0, 0, 0, 0),
18173 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18174 0, 0, 0, 0),
18175 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18176 0, 0, 0, 0),
18177 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18178 0, 0, 0, 0),
18179 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18180 0, 0, 0, 0),
18181 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18182 0, 0, 0, 0),
18183 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18184 0, 0, 0, 0),
18185 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18186 0, 0, 0, 0),
18187 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18188 0, 0, 0, 0),
18189 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18190 0, 0, 0, 0),
18191 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18192 0, 0, 0, 0),
18193 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18194 0, 0, 0, 0),
18195 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18196 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018197 /* incall */
18198 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18199 0, 0, 0, 0),
18200 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18201 0, 0, 0, 0),
18202 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18203 0, 0, 0, 0),
18204 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18205 0, 0, 0, 0),
18206 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18207 0, 0, 0, 0),
18208 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18209 0, 0, 0, 0),
18210 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18211 0, 0, 0, 0),
18212 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18213 0, 0, 0, 0),
18214 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18215
18216 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18217 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18218 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18219 0, 0, 0, 0),
18220 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18221 0, 0, 0, 0),
18222 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18223 0, 0, 0, 0),
18224 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18225 0, 0, 0, 0),
18226 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18227 0, 0, 0, 0),
18228 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18229 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018230 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18231 0, 0, 0, 0),
18232 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18233 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018234 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18235 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18236 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18237 0, 0, 0, 0),
18238 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18239 0, 0, 0, 0),
18240 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18241 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18242 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18243 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18244 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18245 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18246 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18247 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18248 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18249 /* In- call recording */
18250 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18251 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
18252
18253 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18254 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18255
18256 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18257 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
18258 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18259 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18260
18261 /* Switch Definitions */
18262 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18263 &slim_fm_switch_mixer_controls),
18264 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18265 &slim1_fm_switch_mixer_controls),
18266 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18267 &slim3_fm_switch_mixer_controls),
18268 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18269 &slim4_fm_switch_mixer_controls),
18270 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18271 &slim6_fm_switch_mixer_controls),
18272 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18273 &pcm_rx_switch_mixer_controls),
18274 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18275 &int0_mi2s_rx_switch_mixer_controls),
18276 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18277 &int4_mi2s_rx_switch_mixer_controls),
18278 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18279 &pri_mi2s_rx_switch_mixer_controls),
18280 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18281 &sec_mi2s_rx_switch_mixer_controls),
18282 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18283 &tert_mi2s_rx_switch_mixer_controls),
18284 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18285 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018286 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18287 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018288 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18289 &hfp_pri_aux_switch_mixer_controls),
18290 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18291 &hfp_aux_switch_mixer_controls),
18292 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18293 &hfp_int_switch_mixer_controls),
18294 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18295 &hfp_slim7_switch_mixer_controls),
18296 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18297 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018298 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18299 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018300 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018301 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018302 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018303 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018304
18305 /* Mixer definitions */
18306 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18307 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18308 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18309 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18310 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18311 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18312 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18313 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18314 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18315 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18316 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18317 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
18318 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18319 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18320 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18321 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018322 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18323 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018324 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18325 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18326 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18327 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018328 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18329 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18330 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18331 quaternary_mi2s_rx_mixer_controls,
18332 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18333 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18334 tertiary_mi2s_rx_mixer_controls,
18335 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18336 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18337 secondary_mi2s_rx_mixer_controls,
18338 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18339 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18340 secondary_mi2s_rx2_mixer_controls,
18341 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18342 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18343 primary_mi2s_rx_mixer_controls,
18344 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18345 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18346 int0_mi2s_rx_mixer_controls,
18347 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18348 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18349 int4_mi2s_rx_mixer_controls,
18350 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18351 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18352 quinary_mi2s_rx_mixer_controls,
18353 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18354 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18355 pri_tdm_rx_0_mixer_controls,
18356 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18357 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18358 pri_tdm_rx_1_mixer_controls,
18359 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18360 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18361 pri_tdm_rx_2_mixer_controls,
18362 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18363 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18364 pri_tdm_rx_3_mixer_controls,
18365 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18366 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18367 pri_tdm_tx_0_mixer_controls,
18368 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18369 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18370 sec_tdm_rx_0_mixer_controls,
18371 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18372 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18373 sec_tdm_rx_1_mixer_controls,
18374 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18375 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18376 sec_tdm_rx_2_mixer_controls,
18377 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18378 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18379 sec_tdm_rx_3_mixer_controls,
18380 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18381 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18382 sec_tdm_tx_0_mixer_controls,
18383 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18384 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18385 tert_tdm_rx_0_mixer_controls,
18386 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18387 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18388 tert_tdm_tx_0_mixer_controls,
18389 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18390 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18391 tert_tdm_rx_1_mixer_controls,
18392 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
18393 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18394 tert_tdm_rx_2_mixer_controls,
18395 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
18396 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18397 tert_tdm_rx_3_mixer_controls,
18398 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
18399 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18400 tert_tdm_rx_4_mixer_controls,
18401 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
18402 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18403 quat_tdm_rx_0_mixer_controls,
18404 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
18405 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18406 quat_tdm_tx_0_mixer_controls,
18407 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
18408 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18409 quat_tdm_rx_1_mixer_controls,
18410 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
18411 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18412 quat_tdm_rx_2_mixer_controls,
18413 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
18414 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18415 quat_tdm_rx_3_mixer_controls,
18416 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018417 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18418 quin_tdm_rx_0_mixer_controls,
18419 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
18420 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18421 quin_tdm_tx_0_mixer_controls,
18422 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
18423 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18424 quin_tdm_rx_1_mixer_controls,
18425 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
18426 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18427 quin_tdm_rx_2_mixer_controls,
18428 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
18429 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18430 quin_tdm_rx_3_mixer_controls,
18431 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018432 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18433 wsa_cdc_dma_rx_0_mixer_controls,
18434 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
18435 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18436 wsa_cdc_dma_rx_1_mixer_controls,
18437 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018438 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18439 rx_cdc_dma_rx_0_mixer_controls,
18440 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
18441 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18442 rx_cdc_dma_rx_1_mixer_controls,
18443 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
18444 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18445 rx_cdc_dma_rx_2_mixer_controls,
18446 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
18447 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18448 rx_cdc_dma_rx_3_mixer_controls,
18449 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
18450 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18451 rx_cdc_dma_rx_4_mixer_controls,
18452 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
18453 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
18454 rx_cdc_dma_rx_5_mixer_controls,
18455 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
18456 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
18457 rx_cdc_dma_rx_6_mixer_controls,
18458 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
18459 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
18460 rx_cdc_dma_rx_7_mixer_controls,
18461 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018462 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
18463 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
18464 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
18465 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
18466 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
18467 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
18468 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
18469 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
18470 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
18471 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
18472 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
18473 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
18474 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
18475 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
18476 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
18477 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018478 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
18479 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018480 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
18481 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018482 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
18483 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
18484 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
18485 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
18486 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
18487 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
18488 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
18489 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018490 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
18491 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018492 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
18493 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
18494 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
18495 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018496 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18497 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
18498 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18499 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
18500 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18501 tert_auxpcm_rx_mixer_controls,
18502 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
18503 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18504 quat_auxpcm_rx_mixer_controls,
18505 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018506 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18507 quin_auxpcm_rx_mixer_controls,
18508 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018509 /* incall */
18510 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
18511 incall_music_delivery_mixer_controls,
18512 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
18513 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18514 incall_music2_delivery_mixer_controls,
18515 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
18516 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18517 slimbus_4_rx_mixer_controls,
18518 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
18519 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18520 slimbus_6_rx_mixer_controls,
18521 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
18522 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18523 usb_audio_rx_mixer_controls,
18524 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
18525 /* Voice Mixer */
18526 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
18527 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
18528 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
18529 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
18530 SND_SOC_NOPM, 0, 0,
18531 sec_i2s_rx_voice_mixer_controls,
18532 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
18533 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
18534 SND_SOC_NOPM, 0, 0,
18535 sec_mi2s_rx_voice_mixer_controls,
18536 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
18537 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
18538 SND_SOC_NOPM, 0, 0,
18539 slimbus_rx_voice_mixer_controls,
18540 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
18541 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
18542 SND_SOC_NOPM, 0, 0,
18543 bt_sco_rx_voice_mixer_controls,
18544 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
18545 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
18546 SND_SOC_NOPM, 0, 0,
18547 afe_pcm_rx_voice_mixer_controls,
18548 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
18549 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
18550 SND_SOC_NOPM, 0, 0,
18551 aux_pcm_rx_voice_mixer_controls,
18552 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
18553 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
18554 SND_SOC_NOPM, 0, 0,
18555 sec_aux_pcm_rx_voice_mixer_controls,
18556 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
18557 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
18558 SND_SOC_NOPM, 0, 0,
18559 tert_aux_pcm_rx_voice_mixer_controls,
18560 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
18561 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
18562 SND_SOC_NOPM, 0, 0,
18563 quat_aux_pcm_rx_voice_mixer_controls,
18564 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018565 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
18566 SND_SOC_NOPM, 0, 0,
18567 quin_aux_pcm_rx_voice_mixer_controls,
18568 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018569 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
18570 SND_SOC_NOPM, 0, 0,
18571 hdmi_rx_voice_mixer_controls,
18572 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
18573 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
18574 SND_SOC_NOPM, 0, 0,
18575 mi2s_rx_voice_mixer_controls,
18576 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
18577 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
18578 SND_SOC_NOPM, 0, 0,
18579 pri_mi2s_rx_voice_mixer_controls,
18580 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
18581 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
18582 SND_SOC_NOPM, 0, 0,
18583 int0_mi2s_rx_voice_mixer_controls,
18584 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
18585 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
18586 SND_SOC_NOPM, 0, 0,
18587 int4_mi2s_rx_voice_mixer_controls,
18588 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
18589 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
18590 SND_SOC_NOPM, 0, 0,
18591 tert_mi2s_rx_voice_mixer_controls,
18592 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
18593 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
18594 SND_SOC_NOPM, 0, 0,
18595 quat_mi2s_rx_voice_mixer_controls,
18596 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
18597 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
18598 SND_SOC_NOPM, 0, 0,
18599 quin_mi2s_rx_voice_mixer_controls,
18600 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
18601 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
18602 SND_SOC_NOPM, 0, 0,
18603 quat_tdm_rx_2_voice_mixer_controls,
18604 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018605 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
18606 SND_SOC_NOPM, 0, 0,
18607 wsa_cdc_dma_rx_0_voice_mixer_controls,
18608 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
18609 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
18610 SND_SOC_NOPM, 0, 0,
18611 rx_cdc_dma_rx_0_voice_mixer_controls,
18612 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018613 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
18614 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
18615 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018616 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
18617 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
18618 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
18619 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
18620 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
18621 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
18622 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18623 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
18624 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18625 int_bt_a2dp_rx_mixer_controls,
18626 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
18627 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18628 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
18629 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18630 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
18631 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18632 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
18633 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18634 tx_voice2_stub_mixer_controls,
18635 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
18636 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18637 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
18638 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
18639 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
18640 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
18641 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
18642 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18643 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
18644 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
18645 SND_SOC_NOPM, 0, 0,
18646 slimbus_6_rx_voice_mixer_controls,
18647 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
18648 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18649 slimbus_7_rx_voice_mixer_controls,
18650 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
18651 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18652 slimbus_8_rx_voice_mixer_controls,
18653 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
18654 /* port mixer */
18655 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
18656 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
18657 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
18658 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
18659 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
18660 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
18661 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
18662 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
18663 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
18664 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
18665 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
18666 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
18667 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
18668 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
18669 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018670 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
18671 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
18672 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018673 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18674 sbus_1_rx_port_mixer_controls,
18675 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
18676 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18677 bt_sco_rx_port_mixer_controls,
18678 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
18679 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
18680 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
18681 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
18682 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
18683 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
18684 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
18685 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
18686 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
18687 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070018688 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070018689 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
18690 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018691 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
18692 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
18693 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
18694 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
18695 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
18696 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
18697 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
18698 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
18699 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
18700 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18701 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
18702 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18703 primary_mi2s_rx_port_mixer_controls,
18704 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
18705 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18706 sec_mi2s_rx_port_mixer_controls,
18707 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
18708 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18709 tert_mi2s_rx_port_mixer_controls,
18710 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
18711 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18712 quat_mi2s_rx_port_mixer_controls,
18713 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018714 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18715 quin_mi2s_rx_port_mixer_controls,
18716 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018717 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18718 pri_tdm_rx_0_port_mixer_controls,
18719 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
18720 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18721 pri_tdm_rx_1_port_mixer_controls,
18722 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
18723 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18724 pri_tdm_rx_2_port_mixer_controls,
18725 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
18726 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18727 pri_tdm_rx_3_port_mixer_controls,
18728 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
18729 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18730 sec_tdm_rx_0_port_mixer_controls,
18731 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
18732 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18733 sec_tdm_rx_1_port_mixer_controls,
18734 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
18735 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18736 sec_tdm_rx_2_port_mixer_controls,
18737 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
18738 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18739 sec_tdm_rx_3_port_mixer_controls,
18740 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
18741 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18742 tert_tdm_rx_0_port_mixer_controls,
18743 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
18744 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18745 tert_tdm_rx_1_port_mixer_controls,
18746 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
18747 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18748 tert_tdm_rx_2_port_mixer_controls,
18749 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
18750 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18751 tert_tdm_rx_3_port_mixer_controls,
18752 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
18753 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18754 quat_tdm_rx_0_port_mixer_controls,
18755 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
18756 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18757 quat_tdm_rx_1_port_mixer_controls,
18758 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
18759 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18760 quat_tdm_rx_2_port_mixer_controls,
18761 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
18762 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18763 quat_tdm_rx_3_port_mixer_controls,
18764 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018765 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18766 quin_tdm_rx_0_port_mixer_controls,
18767 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
18768 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18769 quin_tdm_rx_1_port_mixer_controls,
18770 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
18771 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18772 quin_tdm_rx_2_port_mixer_controls,
18773 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
18774 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18775 quin_tdm_rx_3_port_mixer_controls,
18776 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018777 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18778 int0_mi2s_rx_port_mixer_controls,
18779 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
18780 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18781 int4_mi2s_rx_port_mixer_controls,
18782 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018783 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18784 wsa_cdc_dma_rx_0_port_mixer_controls,
18785 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
18786 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18787 rx_cdc_dma_rx_0_port_mixer_controls,
18788 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018789 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
18790 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
18791 ARRAY_SIZE(tx_qchat_mixer_controls)),
18792 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
18793 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
18794 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
18795 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
18796 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
18797 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080018798 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
18799 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
18800 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018801 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
18802 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
18803 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018804 /* lsm mixer definitions */
18805 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
18806 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
18807 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
18808 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
18809 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
18810 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
18811 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
18812 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
18813 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
18814 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
18815 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
18816 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
18817 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
18818 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
18819 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
18820 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
18821 /* Virtual Pins to force backends ON atm */
18822 SND_SOC_DAPM_OUTPUT("BE_OUT"),
18823 SND_SOC_DAPM_INPUT("BE_IN"),
18824
18825 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18826 &slim0_rx_vi_fb_lch_mux),
18827 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18828 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018829 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18830 &wsa_rx_0_vi_fb_lch_mux),
18831 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18832 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018833 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
18834 &mi2s_rx_vi_fb_mux),
18835 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
18836 &int4_mi2s_rx_vi_fb_mono_ch_mux),
18837 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
18838 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
18839
18840 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
18841 &voc_ext_ec_mux),
18842 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
18843 &ext_ec_ref_mux_ul1),
18844 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
18845 &ext_ec_ref_mux_ul2),
18846 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
18847 &ext_ec_ref_mux_ul3),
18848 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
18849 &ext_ec_ref_mux_ul4),
18850 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
18851 &ext_ec_ref_mux_ul5),
18852 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
18853 &ext_ec_ref_mux_ul6),
18854 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
18855 &ext_ec_ref_mux_ul8),
18856 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
18857 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018858 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
18859 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018860 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
18861 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018862 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
18863 &ext_ec_ref_mux_ul17),
18864 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
18865 &ext_ec_ref_mux_ul18),
18866 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
18867 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080018868 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
18869 &ext_ec_ref_mux_ul28),
18870 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
18871 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018872};
18873
18874static const struct snd_soc_dapm_route intercon[] = {
18875 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18876 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18877 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18878 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18879 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18880 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18881 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18882 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18883 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18884 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18885 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18886 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18887 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18888 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18889 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18890 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18891 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
18892
18893 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18894 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18895 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18896 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18897 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18898 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18899 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18900 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18901 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18902 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18903 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18904 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18905 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18906 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18907 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18908 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18909 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
18910
18911 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18912 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18913 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18914 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18915 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18916 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18917 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18918 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18919 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18920 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18921 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18922 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18923 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18924 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18925 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18926 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18927 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
18928
18929 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18930 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18931 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18932 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18933 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18934 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18935 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18936 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18937 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18938 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18939 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18940 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18941 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18942 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18943 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18944 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18945 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
18946
18947 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18948 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18949 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18950 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18951 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18952 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18953 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18954 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18955 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18956 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18957 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18958 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18959 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18960 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18961 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18962 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18963 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
18964
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018965 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
18966 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
18967 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
18968 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
18969 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
18970 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
18971 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
18972 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
18973 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
18974 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
18975 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
18976 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
18977 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
18978 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
18979 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
18980 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
18981 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
18982
18983 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
18984 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
18985 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
18986 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
18987 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
18988 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
18989 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
18990 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
18991 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
18992 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
18993 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
18994 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
18995 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
18996 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
18997 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
18998 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
18999 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19000
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019001 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19002 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19003 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19004 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19005 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19006 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19007 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19008 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19009 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19010 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19011 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19012 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19013 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19014 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19015 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19016 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19017 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19018
19019 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19020 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19021 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19022 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19023 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19024 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19025 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19026 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19027 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19028 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19029 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19030 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19031 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19032 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19033 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19034 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19035 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19036
19037 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19038 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19039 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19040 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19041 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19042 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19043 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19044 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19045 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19046 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19047 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19048 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19049 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19050 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19051 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19052 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19053 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19054
19055 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19056 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19057 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19058 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19059 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19060 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19061 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19062 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19063 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19064 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19065 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19066 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19067 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19068 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19069 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19070 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19071 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19072
19073 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19074 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19075 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19076 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19077 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19078 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19079 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19080 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19081 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19082 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19083 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19084 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19085 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19086 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19087 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19088 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
19089 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19090
19091 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19092 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19093 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19094 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19095 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19096 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19097 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19098 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19099 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19100 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19101 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19102 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19103 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19104 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19105 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19106 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
19107 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19108
19109 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19110 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19111 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19112 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19113 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19114 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19115 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19116 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19117 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19118 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19119 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19120 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19121 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19122 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19123 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19124 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
19125 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19126
19127 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19128 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19129 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19130 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19131 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19132 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19133 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19134 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19135 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19136 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19137 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19138 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19139 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19140 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19141 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19142 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
19143 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19144
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019145 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19146 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19147 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19148 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19149 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19150 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19151 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19152 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19153 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19154 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19155 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19156 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19157 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19158 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19159 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19160 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
19161 {"HDMI", NULL, "HDMI Mixer"},
19162
19163 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19164 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19165 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19166 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19167 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19168 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19169 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19170 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19171 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19172 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19173 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19174 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19175 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19176 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19177 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19178 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
19179 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19180
Karthikeyan Mani57550082018-05-03 18:43:58 -070019181 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19182 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19183 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19184 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19185 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19186 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19187 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19188 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19189 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19190 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19191 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19192 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19193 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19194 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19195 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19196 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
19197 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19198
Ralf Herzc8701f72018-06-20 11:37:35 +020019199 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19200 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19201 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19202 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19203 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19204 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19205 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19206 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19207 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19208 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19209 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19210 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19211 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19212 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19213 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19214 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19215 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19216
19217 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19218 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19219 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19220 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19221 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19222 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19223 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19224 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19225 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19226 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19227 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19228 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19229 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19230 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19231 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19232 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19233 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019234
19235 /* incall */
19236 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19237 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19238 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19239 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19240 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19241 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19242 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19243 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19244 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19245 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19246 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19247 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19248 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19249 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19250 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19251
19252 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19253 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19254 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19255 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19256 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19257 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19258 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19259 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19260 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19261 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19262 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19263 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19264 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19265 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19266 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19267 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19268 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19269
19270 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19271 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19272 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19273 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19274 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19275 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19276 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19277 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19278 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19279 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19280 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19281 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19282 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19283 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19284 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19285 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19286 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19287
19288 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19289 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19290 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19291 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19292 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19293 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19294 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19295 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19296 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19297 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19298 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19299 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19300 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19301 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19302 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19303 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19304 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19305
19306 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19307 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19308 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19309 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19310 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19311 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19312 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19313 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19314 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19315 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19316 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19317 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19318 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19319 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19320 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19321 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019322 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19323 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019324 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19325 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19326 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19327 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19328 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19329 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019330 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19331 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019332 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019333 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019334 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19335 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19336 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19337 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19338 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19339 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019340 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019341 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19342 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19343 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019344 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19345 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19346 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019347 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019348 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019349 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19350 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019351 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019352 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
19353 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
19354
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019355 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19356 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19357 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19358 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19359 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19360 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19361 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19362 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19363 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19364 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19365 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19366 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19367 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19368 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19369 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19370 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19371 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
19372
19373 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19374 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19375 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19376 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19377 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19378 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19379 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19380 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19381 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19382 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19383 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19384 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19385 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19386 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19387 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19388 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
19389
19390 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19391 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19392 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19393 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19394 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19395 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19396 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19397 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19398 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19399 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19400 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19401 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19402 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19403 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19404 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
19405
19406 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19407 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19408 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19409 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19410 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19411 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19412 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19413 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19414 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19415 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19416 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19417 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19418 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19419 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19420 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
19421
19422 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19423 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
19424
19425 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19426 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19427
19428 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19429 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19430 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19431 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19432 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19433 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19434 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19435 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19436 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19437 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19438 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19439 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19440 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19441 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19442 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19443 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
19444
19445 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19446 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19447 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19448 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19449 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19450 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19451 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19452 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19453 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19454 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19455 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19456 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19457 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19458 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19459 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19460 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
19461
19462 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19463 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19464 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19465 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19466 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19467 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19468 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19469 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19470 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19471 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19472 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19473 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19474 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19475 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19476 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19477 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
19478
19479 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19480 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19481 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19482 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19483 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19484 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19485 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19486 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19487 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19488 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19489 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19490 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19491 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19492 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19493 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19494 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19495 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19496 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
19497
19498 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19499 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19500 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19501 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19502 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19503 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19504 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19505 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19506 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19507 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19508 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19509 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19510 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19511 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19512 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19513 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019514 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019515 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
19516
19517 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19518 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19519 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19520 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19521 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19522 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19523 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19524 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19525 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19526 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19527 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19528 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19529 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19530 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19531 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19532 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019533 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019534 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
19535
19536 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19537 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19538 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19539 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19540 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19541 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19542 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19543 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19544 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19545 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19546 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19547 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19548 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19549 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19550 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19551 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019552 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019553 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
19554
19555 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19556 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19557 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19558 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19559 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19560 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19561 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19562 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19563 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19564 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19565 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19566 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19567 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19568 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19569 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19570 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019571 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019572 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
19573
19574 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19575 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19576 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19577 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19578 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19579 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19580 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19581 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19582 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19583 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19584 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19585 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19586 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19587 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19588 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19589 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19590 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
19591
19592 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19593 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19594 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19595 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19596 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19597 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19598 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19599 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19600 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19601 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19602 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19603 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19604 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19605 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19606 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19607 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019608 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019609 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
19610
19611 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19612 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19613 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19614 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19615 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19616 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19617 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19618 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19619 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19620 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19621 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19622 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19623 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19624 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19625 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19626 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019627 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019628 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
19629
19630 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19631 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19632 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19633 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19634 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19635 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19636 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19637 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19638 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19639 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19640 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19641 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19642 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19643 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19644 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19645 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019646 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019647 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
19648
19649 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19650 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19651 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19652 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19653 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19654 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19655 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19656 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19657 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19658 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19659 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19660 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19661 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19662 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19663 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19664 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019665 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019666 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
19667
19668 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19669 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19670 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19671 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19672 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19673 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19674 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19675 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19676 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19677 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19678 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19679 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19680 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19681 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19682 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19683 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19684 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
19685
19686 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19687 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19688 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19689 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19690 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19691 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19692 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19693 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19694 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19695 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19696 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19697 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19698 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19699 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19700 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19701 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019702 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019703 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
19704
19705 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19706 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19707 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19708 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19709 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19710 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19711 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19712 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19713 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19714 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19715 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19716 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19717 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19718 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19719 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19720 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19721 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
19722
19723 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19724 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19725 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19726 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19727 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19728 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19729 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19730 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19731 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19732 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19733 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19734 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19735 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19736 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19737 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19738 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019739 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019740 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
19741
19742 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19743 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19744 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19745 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19746 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19747 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19748 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19749 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19750 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19751 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19752 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19753 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19754 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19755 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19756 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19757 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019758 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019759 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
19760
19761 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19762 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19763 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19764 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19765 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19766 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19767 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19768 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19769 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19770 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19771 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19772 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19773 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19774 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19775 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19776 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019777 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019778 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
19779
19780 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19781 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19782 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19783 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19784 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19785 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19786 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19787 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19788 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19789 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19790 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19791 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19792 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19793 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19794 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19795 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019796 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019797 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
19798
19799 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19800 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19801 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19802 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19803 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19804 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19805 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19806 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19807 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19808 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19809 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19810 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19811 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19812 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19813 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19814 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19815 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019816 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019817 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
19818
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019819 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19820 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19821 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19822 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19823 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19824 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19825 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19826 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19827 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19828 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19829 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19830 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19831 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19832 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19833 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19834 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19835 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
19836
19837 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19838 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19839 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19840 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19841 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19842 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19843 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19844 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19845 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19846 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19847 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19848 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19849 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19850 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19851 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19852 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19853 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019854 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019855 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
19856
19857 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19858 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19859 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19860 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19861 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19862 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19863 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19864 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19865 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19866 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19867 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19868 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19869 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19870 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19871 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19872 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19873 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019874 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019875 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
19876
19877 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19878 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19879 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19880 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19881 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19882 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19883 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19884 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19885 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19886 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19887 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19888 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19889 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19890 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19891 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19892 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19893 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019894 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019895 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
19896
Rohit Kumara5077932017-09-10 22:05:05 +053019897 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19898 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19899 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19900 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19901 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19902 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19903 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19904 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19905 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19906 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19907 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19908 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19909 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19910 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19911 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19912 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19913 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019914 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019915 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
19916
19917 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19918 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19919 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19920 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19921 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19922 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19923 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19924 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19925 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19926 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19927 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19928 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19929 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19930 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19931 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19932 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19933 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
19934
19935 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19936 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19937 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19938 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19939 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19940 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19941 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19942 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19943 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19944 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19945 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19946 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19947 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19948 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19949 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19950 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19951 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019952 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019953 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
19954
19955 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19956 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19957 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19958 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19959 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19960 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19961 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19962 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19963 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19964 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19965 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19966 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19967 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19968 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19969 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19970 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19971 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019972 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019973 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
19974
19975 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19976 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19977 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19978 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19979 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19980 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19981 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19982 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19983 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19984 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19985 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19986 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19987 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19988 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19989 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19990 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19991 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019992 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019993 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
19994
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019995 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
19996 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
19997 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
19998 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
19999 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020000 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020001 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020002 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20003 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20004 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20005 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20006 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20007 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20008 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20009 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20010 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20011 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20012 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20013 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20014 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20015 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20016 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020017 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020018 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20019 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20020 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020021 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020022 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20023 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020024 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20025 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20026 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020027 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020028 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20029 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20030 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020031 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020032 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020033 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20034 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20035 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020036 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20037 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20038 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20039 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20040 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20041 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20042 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20043 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20044 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20045 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20046 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020047 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020048 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20049 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20050 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020051 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020052 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020053 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20054 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20055 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020056 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020057 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020058 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20059 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20060 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20061 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20062 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020063 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20064 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20065 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20066 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020067 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020068
20069 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20070 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20071 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20072 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20073 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20074 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20075 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20076 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20077 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20078 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20079 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20080 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20081 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20082 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20083 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20084 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020085 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20086 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20087 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20088 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020089 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20090 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20091 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20092 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20093 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020094 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20095 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20096 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20097 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20098 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20099 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020100 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20101 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020102
20103 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20104 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20105 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20106 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20107 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20108 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20109 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20110 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20111 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20112 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20113 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20114 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20115 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20116 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20117 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20118 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020119 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20120 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20121 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20122 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020123 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20124 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20125 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20126 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20127 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020128 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20129 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20130 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20131 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20132 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20133 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020134 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20135 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020136
20137 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20138 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20139 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20140 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20141 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20142 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20143 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20144 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20145 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20146 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20147 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20148 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20149 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20150 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20151 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20152 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020153 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20154 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20155 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20156 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020157 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20158 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20159 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20160 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20161 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020162 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20163 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20164 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20165 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20166 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20167 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020168 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20169 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020170
20171 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20172 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20173 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20174 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20175 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20176 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20177 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20178 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20179 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20180 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20181 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20182 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20183 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20184 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20185 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20186 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020187 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20188 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20189 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20190 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020191 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20192 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20193 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20194 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20195 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020196 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20197 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20198 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20199 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20200 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20201 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020202 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20203 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020204
20205 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20206 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20207 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20208 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20209 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20210 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20211 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20212 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20213 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20214 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20215 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20216 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20217 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20218 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20219 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20220 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020221 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20222 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20223 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20224 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020225 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20226 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20227 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20228 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20229 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020230 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20231 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20232 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20233 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20234 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20235 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020236 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20237 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020238
20239 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20240 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20241 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20242 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20243 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20244 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20245 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20246 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20247 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20248 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20249 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20250 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20251 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20252 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20253 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20254 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020255 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20256 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20257 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20258 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020259 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20260 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20261 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20262 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20263 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020264 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20265 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20266 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20267 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20268 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20269 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020270 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20271 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020272
20273 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20274 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20275 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20276 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20277 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20278 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20279 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20280 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20281 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20282 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20283 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20284 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20285 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20286 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20287 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20288 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020289 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20290 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20291 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20292 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020293 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20294 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20295 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20296 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20297 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20298 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020299 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20300 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20301 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20302 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20303 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20304 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020305 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20306 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020307
20308 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20309 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20310 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20311 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20312 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20313 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20314 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20315 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020316 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20317 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20318 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20319 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020320 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20321 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20322 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20323 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20324 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20325 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020326 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20327 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20328 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20329 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20330 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20331 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020332 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20333 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020334
Laxminath Kasam38070be2017-08-17 18:21:59 +053020335 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20336 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20337 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20338 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20339 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20340 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20341 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20342 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020343 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20344 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20345 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20346 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20347 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20348 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20349
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020350 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20351 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20352 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20353 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020354 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020355 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20356 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20357 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20358 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20359 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20360 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20361 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20362 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20363 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20364 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20365 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20366 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20367 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20368 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20369 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20370 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020371 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20372 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20373 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20374 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020375 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20376 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20377 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20378 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20379 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20380 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020381 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20382 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20383 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20384 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20385 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20386 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020387 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20388 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020389
Derek Chen07c6d1c2018-07-05 10:39:25 -070020390 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20391 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20392 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20393 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20394 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20395 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20396 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20397 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20398 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20399 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20400 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20401 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20402 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20403 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20404 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20405 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20406 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20407 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20408 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20409 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20410 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20411 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
20412
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020413 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20414 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20415 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20416 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20417 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20418 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020419 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020420
Asish Bhattacharya34504582017-08-08 12:55:01 +053020421 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20422 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20423 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20424 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20425 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20426 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20427 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20428 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20429 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20430 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20431 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20432 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20433 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20434 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20435 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20436 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20437 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020438 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20439 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20440 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20441 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20442 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20443 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020444 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20445 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20446 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20447 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20448 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20449 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020450 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20451 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020452
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020453 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20454 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20455 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20456 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20457 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20458 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20459
20460 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20461 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20462 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20463 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20464 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20465 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20466
20467 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20468 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20469 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20470 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20471 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20472 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20473
20474 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20475 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20476 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20477 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20478 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20479 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20480
20481 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20482 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20483 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20484 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20485 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20486 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20487
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020488 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20489 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20490 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20491 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20492 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20493 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20494 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20495 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20496 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20497 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20498 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20499 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20500 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20501 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20502 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20503 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20504 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20505 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
20506
20507 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20508 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20509 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20510 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20511 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20512 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20513 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20514 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20515 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20516 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20517 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20518 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20519 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20520 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20521 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20522 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20523 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20524 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
20525
20526 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20527 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20528 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20529 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20530 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20531 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20532 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20533 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20534 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20535 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20536 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20537 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20538 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20539 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20540 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20541 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20542 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
20543
20544 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20545 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20546 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20547 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20548 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20549 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20550 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20551 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20552 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20553 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20554 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20555 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20556 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20557 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20558 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20559 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20560 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
20561
20562 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20563 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20564 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020565 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020566 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20567 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20568 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020569 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20570 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020571 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20572 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020573 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020574 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20575 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020576 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020577 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20578 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20579 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020580 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20581 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020582 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20583 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20584 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20585
20586 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
20587 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
20588 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020589 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020590 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
20591 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
20592 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020593 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
20594 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020595 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
20596 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020597 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020598 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
20599 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20600 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
20601 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
20602 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
20603 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
20604 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
20605 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
20606 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020607 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020608 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020609 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
20610 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
20611 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
20612 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020613 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020614 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
20615 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020616
20617 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20618 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20619 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20620 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20621 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20622 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20623 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20624 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20625 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20626 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20627 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20628 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20629 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20630 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20631 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20632 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020633 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020634 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
20635
20636 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20637 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20638 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20639 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20640 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20641 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20642 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20643 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20644 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20645 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20646 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20647 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20648 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20649 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20650 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20651 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020652 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020653 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
20654
20655 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20656 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20657 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20658 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20659 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20660 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20661 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20662 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20663 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20664 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20665 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20666 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20667 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20668 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20669 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20670 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20671 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
20672
20673 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20674 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20675 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20676 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20677 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20678 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20679 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20680 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20681 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20682 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20683 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20684 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20685 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20686 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20687 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20688 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20689 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
20690
Rohit Kumara5077932017-09-10 22:05:05 +053020691 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20692 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20693 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20694 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20695 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20696 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20697 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20698 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20699 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20700 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20701 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20702 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20703 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20704 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20705 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20706 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20707 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
20708
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020709 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20710 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20711 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20712 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20713 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20714 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
20715
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020716 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
20717 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20718 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20719 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
20720
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020721 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20722 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20723 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20724 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20725 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20726 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
20727
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020728 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
20729 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020730 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20731 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20732 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20733 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
20734
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020735 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
20736 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020737 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20738 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20739 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20740 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
20741
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020742 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20743 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020744 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20745 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20746 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20747 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
20748
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020749 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
20750 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020751 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20752 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20753 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20754 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
20755
Karthikeyan Mani57550082018-05-03 18:43:58 -070020756 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
20757 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20758 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
20759 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20760 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20761 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
20762
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020763 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20764 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20765 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20766 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20767 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020768 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
20769
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020770 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20771 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20772 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20773 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20774 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20775 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
20776
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020777 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20778 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020779 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20780 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20781 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20782 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
20783
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020784 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20785 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020786 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20787 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20788 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20789 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
20790
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020791 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20792 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020793 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20794 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20795 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20796 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
20797
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020798 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20799 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020800 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20801 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20802 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20803 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
20804
Rohit Kumara5077932017-09-10 22:05:05 +053020805 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20806 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053020807 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20808 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20809 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20810 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
20811
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020812 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20813 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20814 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20815 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20816 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20817 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
20818 {"HDMI", NULL, "HDMI_DL_HL"},
20819
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020820 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020821 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20822 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20823 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080020824 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020825 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
20826
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020827 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020828 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20829 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20830 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20831 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20832 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
20833
20834 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20835 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20836 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20837 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20838 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20839 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
20840
20841 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20842 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20843 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20844 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20845 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20846 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
20847
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020848 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020849 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20850 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20851 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20852 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20853 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
20854
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020855 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020856 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20857 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20858 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20859 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
20860
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020861 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020862 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20863 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20864 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20865 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
20866
20867 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20868 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
20869
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053020870 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20871 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20872 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
20873
20874 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20875 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20876 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
20877
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020878 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20879 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20880 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20881 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020882 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020883 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070020884 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020885 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020886 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
20887 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
20888
20889 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20890 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20891 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20892 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20893 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
20894 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20895 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
20896 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
20897 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
20898 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20899
20900 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20901 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20902 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20903 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20904
20905 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20906 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20907 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20908 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20909
20910 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20911 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20912 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20913 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20914
20915 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20916 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20917 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20918 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20919
20920 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20921 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20922 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20923 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20924
20925 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20926 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20927 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20928 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20929
20930 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20931 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20932 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20933 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20934
Laxminath Kasam38070be2017-08-17 18:21:59 +053020935 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20936 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20937 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20938 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20939 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
20940 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20941 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
20942 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
20943 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
20944 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070020945
20946 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20947 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20948 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20949 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20950
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020951 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20952 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20953 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20954 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20955
20956 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20957 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20958 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20959 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20960
20961 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20962 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20963 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20964 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20965
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020966 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20967 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20968 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20969 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20970
20971 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20972 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20973 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20974 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080020975
20976 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20977 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20978 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20979 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20980 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20981 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20982 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20983 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20984
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020985 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
20986 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
20987 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
20988 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
20989 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
20990 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
20991 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
20992 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020993 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020994 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020995 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
20996 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
20997 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020998 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
20999 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021000
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021001 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21002 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21003 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21004 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21005 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21006 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21007 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21008 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21009 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21010 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21011 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21012 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21013 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21014 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21015 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021016 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021017 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021018 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21019 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21020 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21021 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21022 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21023 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021024 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21025
21026 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21027 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21028 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21029 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21030 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21031 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21032 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21033 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21034 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21035 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21036 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21037 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21038 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21039 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21040 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021041 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021042 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21043 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21044 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21045 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21046 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21047 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021048 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21049
21050 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21051 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21052 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21053 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21054 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21055 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21056 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21057 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21058 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21059 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21060 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21061 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21062 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21063 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021064 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021065 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21066 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21067
21068 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21069 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21070 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21071 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21072 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21073 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21074 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21075 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21076 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21077 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21078 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21079 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21080 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21081 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21082 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021083 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21084 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21085 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021086 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21087 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21088 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021089 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21090 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21091 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21092 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21093 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21094 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21095 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21096 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021097 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21098 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021099 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21100
21101 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21102 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21103 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21104 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21105 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21106 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21107 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21108 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021109 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21110 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021111 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21112
21113
21114 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21115 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21116 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21117 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21118 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21119 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21120 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21121 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021122 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21123 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021124 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21125
21126
21127 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21128 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21129 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21130 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21131 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21132 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21133 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21134 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021135 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21136 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021137 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21138
21139 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21140 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21141 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21142 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21143 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21144 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21145 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21146 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021147 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21148 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021149 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21150
21151 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21152 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21153 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21154 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21155 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21156 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021157 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21158 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021159 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21160
21161 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21162 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21163 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21164 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21165 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21166 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021167 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21168 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021169 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21170
21171 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21172 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21173 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21174 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21175 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21176 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021177 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21178 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021179 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21180
21181
21182 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21183 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21184 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21185 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21186 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21187 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21188 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21189 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21190 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21191 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21192 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021193 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021194 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21195 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21196 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21197 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21198 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21199 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21200
21201 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21202 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21203 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21204 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21205 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21206 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21207 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21208 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21209 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21210 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21211 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21212 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021213 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21214 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021215 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021216 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021217 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021218 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21219 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21220 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21221 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21222
21223 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21224 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21225 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21226 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21227 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21228 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21229 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21230 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21231 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21232 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21233 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21234
21235 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21236 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021237 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21238 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021239 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21240 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21241 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21242 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21243 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21244 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21245 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21246 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21247 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21248 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21249
21250 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21251 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21252 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21253 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21254 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21255 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21256 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21257 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21258 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21259 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21260 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21261 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21262 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21263 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21264 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21265 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
21266 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21267 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21268 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21269 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
21270 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21271 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21272 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21273 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21274 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21275 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21276 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21277 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21278 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21279 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21280 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21281 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021282 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21283 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21284 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21285 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21286 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21287 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21288 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21289 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021290
21291 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21292 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21293 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21294 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21295 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21296 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21297 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21298 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21299 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21300 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21301 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21302 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21303 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21304 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21305 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21306 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021307 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21308 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21309 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21310 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021311 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
21312
21313 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21314 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21315 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21316 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21317 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21318 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21319 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21320 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21321 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21322 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21323 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21324 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21325 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21326 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21327 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21328 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021329 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21330 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21331 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21332 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021333 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
21334
21335 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21336 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21337 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21338 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21339 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21340 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21341 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21342 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21343 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21344 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21345 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21346 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21347 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21348 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21349 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21350 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021351 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21352 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21353 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21354 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021355 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
21356
21357 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21358 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21359 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21360 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21361 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21362 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21363 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21364 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21365 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21366 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21367 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21368 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21369 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21370 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21371 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21372 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021373 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21374 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21375 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21376 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021377 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
21378
21379 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21380 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21381 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21382 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21383 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21384 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21385 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21386 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21387 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21388 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21389 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21390 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21391 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21392 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21393 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21394 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021395 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21396 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21397 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21398 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021399 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
21400
21401 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21402 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21403 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21404 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21405 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21406 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21407 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21408 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21409 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21410 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21411 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21412 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21413 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21414 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21415 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21416 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021417 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21418 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21419 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21420 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021421 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
21422
21423 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21424 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21425 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21426 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21427 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21428 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21429 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21430 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21431 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21432 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21433 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21434 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21435 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21436 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21437 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21438 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021439 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21440 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21441 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21442 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021443 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
21444
21445 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21446 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21447 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21448 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21449 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21450 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21451 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21452 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21453 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21454 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21455 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21456 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21457 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21458 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21459 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21460 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021461 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21462 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21463 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21464 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021465 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
21466
21467 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21468 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21469 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21470 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21471 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21472 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21473 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21474 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21475 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21476 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21477 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21478 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21479 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21480 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21481 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21482 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021483 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21484 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21485 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21486 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021487 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
21488
21489 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21490 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21491 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21492 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21493 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21494 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21495 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21496 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21497 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21498 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21499 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21500 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21501 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21502 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21503 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21504 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021505 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21506 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21507 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21508 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021509 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
21510
21511 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21512 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21513 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21514 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21515 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21516 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21517 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21518 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21519 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21520 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21521 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21522 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21523 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21524 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21525 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21526 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021527 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21528 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21529 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21530 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021531 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
21532
21533 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21534 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21535 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21536 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21537 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21538 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21539 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21540 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21541 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21542 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21543 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21544 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21545 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21546 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21547 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21548 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021549 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21550 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21551 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21552 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021553 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
21554
21555 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21556 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21557 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21558 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21559 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21560 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21561 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21562 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21563 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21564 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21565 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21566 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21567 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21568 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21569 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21570 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021571 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21572 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21573 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21574 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021575 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
21576
21577 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21578 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21579 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21580 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21581 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21582 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21583 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21584 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21585 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21586 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21587 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21588 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21589 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21590 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21591 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21592 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021593 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21594 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21595 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21596 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021597 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
21598
21599 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21600 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21601 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21602 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21603 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21604 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21605 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21606 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21607 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21608 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21609 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21610 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21611 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21612 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21613 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21614 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021615 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21616 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21617 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21618 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021619 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
21620
21621 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21622 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21623 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21624 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21625 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21626 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21627 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21628 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21629 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21630 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21631 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21632 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21633 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21634 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21635 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21636 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021637 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21638 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21639 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21640 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021641 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
21642
Rohit Kumara5077932017-09-10 22:05:05 +053021643 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21644 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21645 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21646 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21647 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21648 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21649 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21650 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21651 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21652 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21653 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21654 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21655 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21656 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21657 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21658 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21659 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21660 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21661 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21662 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021663 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021664
21665 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21666 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21667 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21668 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21669 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21670 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21671 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21672 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21673 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21674 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21675 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21676 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21677 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21678 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21679 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21680 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21681 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21682 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21683 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21684 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021685 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021686
21687 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21688 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21689 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21690 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21691 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21692 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21693 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21694 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21695 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21696 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21697 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21698 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21699 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21700 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21701 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21702 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21703 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21704 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21705 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21706 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021707 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021708
21709 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21710 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21711 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21712 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21713 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21714 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21715 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21716 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21717 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21718 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21719 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21720 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21721 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21722 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21723 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21724 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21725 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21726 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21727 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21728 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021729 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021730
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021731 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21732 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21733 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21734 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021735 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021736 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21737 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21738 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21739 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21740 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21741 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
21742
21743 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21744 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21745 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21746 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021747 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021748 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21749 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21750 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21751 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21752 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21753 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
21754
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021755 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21756 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21757 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21758
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021759 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21760 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21761 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21762 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21763 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21764 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21765 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21766 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21767 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021768 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021769 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21770 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21771 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21772 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21773 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021774 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021775 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21776 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
21777 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21778 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21779 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
21780 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21781 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
21782 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
21783 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
21784 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
21785
21786
21787 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21788 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21789 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21790 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21791 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021792 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021793 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
21794
21795 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21796 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21797 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021798 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021799 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
21800
21801 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21802 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21803 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21804 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
21805
21806 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21807 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21808 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21809 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
21810
Rohit Kumara5077932017-09-10 22:05:05 +053021811 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21812 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21813 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21814 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
21815
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021816 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21817 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21818 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21819 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21820 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21821 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21822 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21823 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021824 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021825 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
21826 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21827 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21828 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21829 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21830 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21831 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21832 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21833 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21834 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21835 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
21836
21837 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21838 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21839 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21840 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21841 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21842 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21843 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21844 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21845 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21846 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21847 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21848 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
21849
21850 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21851 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21852 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21853 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21854 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21855 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21856 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21857 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21858 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21859 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21860 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21861 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
21862
kunleizdf5a00a2017-11-27 15:27:36 +080021863 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21864 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021865 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080021866
21867 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21868 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021869 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080021870
21871 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21872 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021873 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
21874
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021875 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
21876 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021877 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21878 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21879 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21880 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
21881
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021882 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
21883 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021884 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21885 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21886 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21887 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
21888
21889 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21890 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21891 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21892 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
21893 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21894 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21895 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
21896 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
21897 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21898 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
21899 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
21900 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
21901 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
21902
21903 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21904 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21905 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21906 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21907 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21908 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21909 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21910 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21911 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21912 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21913 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21914 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21915 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
21916
21917 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21918 {"HDMI", NULL, "HDMI_RX Port Mixer"},
21919
21920 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21921 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
21922
Karthikeyan Mani57550082018-05-03 18:43:58 -070021923 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
21924 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
21925
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021926 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21927 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
21928
21929 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21930 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21931 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
21932
21933 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21934 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21935 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21936 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021937 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021938 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21939 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21940 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21941 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021942 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021943 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
21944
21945 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21946 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21947 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21948 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021949 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021950 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21951 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21952 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021953 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021954 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
21955
21956 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21957 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21958 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21959 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021960 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021961 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21962 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21963 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
21964
21965 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21966 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21967 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21968 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021969 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021970 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21971 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21972 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21973 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21974 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
21975
Rohit Kumara5077932017-09-10 22:05:05 +053021976 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21977 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21978 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21979 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21980 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21981 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21982 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21983 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
21984
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021985 /* Backend Enablement */
21986
21987 {"BE_OUT", NULL, "PRI_I2S_RX"},
21988 {"BE_OUT", NULL, "SEC_I2S_RX"},
21989 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
21990 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
21991 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
21992 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
21993 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
21994 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
21995 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
21996 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
21997 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
21998 {"BE_OUT", NULL, "USB_AUDIO_RX"},
21999 {"BE_OUT", NULL, "HDMI"},
22000 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022001 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022002 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22003 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022004 {"BE_OUT", NULL, "MI2S_RX"},
22005 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22006 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22007 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22008 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22009 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22010 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22011 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22012 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022013 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22014 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22015 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022016 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22017 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22018 {"BE_OUT", NULL, "INT_FM_RX"},
22019 {"BE_OUT", NULL, "PCM_RX"},
22020 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22021 {"BE_OUT", NULL, "AUX_PCM_RX"},
22022 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22023 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22024 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022025 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022026 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22027 {"BE_OUT", NULL, "INT_FM_RX"},
22028 {"BE_OUT", NULL, "PCM_RX"},
22029 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22030 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22031 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22032 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22033 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22034 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22035 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22036 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22037 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22038 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22039 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
22040 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22041 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22042 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22043 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22044 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22045 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22046 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22047 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22048 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022049 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22050 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22051 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22052 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022053 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22054 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022055 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22056 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22057 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22058 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22059 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22060 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22061 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22062 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022063
22064 {"PRI_I2S_TX", NULL, "BE_IN"},
22065 {"MI2S_TX", NULL, "BE_IN"},
22066 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22067 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22068 {"PRI_MI2S_TX", NULL, "BE_IN"},
22069 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022070 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022071 {"INT2_MI2S_TX", NULL, "BE_IN"},
22072 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022073 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022074 {"INT5_MI2S_TX", NULL, "BE_IN"},
22075 {"SEC_MI2S_TX", NULL, "BE_IN"},
22076 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22077 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22078 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22079 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22080 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22081 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22082 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22083 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22084 {"SLIMBUS_8_TX", NULL, "BE_IN" },
22085 {"USB_AUDIO_TX", NULL, "BE_IN" },
22086 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22087 {"INT_FM_TX", NULL, "BE_IN"},
22088 {"PCM_TX", NULL, "BE_IN"},
22089 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22090 {"BE_OUT", NULL, "STUB_RX"},
22091 {"STUB_TX", NULL, "BE_IN"},
22092 {"STUB_1_TX", NULL, "BE_IN"},
22093 {"BE_OUT", NULL, "AUX_PCM_RX"},
22094 {"AUX_PCM_TX", NULL, "BE_IN"},
22095 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22096 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22097 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022098 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022099 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22100 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22101 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22102 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022103 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22104 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022105 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22106 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22107 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22108 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22109 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022110 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22111 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022112 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22113 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22114 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22115 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22116 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22117 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22118 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22119 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22120 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22121 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22122 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22123 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22124 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22125 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22126 {"TERT_TDM_TX_3", NULL, "BE_IN"},
22127 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22128 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22129 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22130 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022131 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22132 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22133 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22134 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022135 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22136 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22137 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22138 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22139 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022140 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22141 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22142 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22143 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22144 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22145 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022146 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22147 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022148};
22149
22150static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22151 struct snd_pcm_hw_params *params)
22152{
22153 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22154 unsigned int be_id = rtd->dai_link->id;
22155
22156 if (be_id >= MSM_BACKEND_DAI_MAX) {
22157 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22158 return -EINVAL;
22159 }
22160
22161 mutex_lock(&routing_lock);
22162 msm_bedais[be_id].sample_rate = params_rate(params);
22163 msm_bedais[be_id].channel = params_channels(params);
22164 msm_bedais[be_id].format = params_format(params);
22165 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22166 __func__, msm_bedais[be_id].sample_rate,
22167 msm_bedais[be_id].format, be_id);
22168 mutex_unlock(&routing_lock);
22169 return 0;
22170}
22171
22172static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22173{
22174 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22175 unsigned int be_id = rtd->dai_link->id;
22176 int i, session_type, path_type, topology;
22177 struct msm_pcm_routing_bdai_data *bedai;
22178 struct msm_pcm_routing_fdai_data *fdai;
22179
22180 pr_debug("%s: substream->pcm->id:%s\n",
22181 __func__, substream->pcm->id);
22182
22183 if (be_id >= MSM_BACKEND_DAI_MAX) {
22184 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22185 return -EINVAL;
22186 }
22187
22188 bedai = &msm_bedais[be_id];
22189 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22190 0 : 1);
22191 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22192 path_type = ADM_PATH_PLAYBACK;
22193 else
22194 path_type = ADM_PATH_LIVE_REC;
22195
22196 mutex_lock(&routing_lock);
22197 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22198 if (!is_mm_lsm_fe_id(i))
22199 continue;
22200 fdai = &fe_dai_map[i][session_type];
22201 if (fdai->strm_id != INVALID_SESSION) {
22202 int idx;
22203 int port_id;
22204 unsigned long copp =
22205 session_copp_map[i][session_type][be_id];
22206 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22207 if (test_bit(idx, &copp))
22208 break;
22209 fdai->be_srate = bedai->sample_rate;
22210 port_id = bedai->port_id;
22211 topology = adm_get_topology_for_port_copp_idx(port_id,
22212 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022213 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022214 adm_close(bedai->port_id, fdai->perf_mode, idx);
22215 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22216 __func__, copp, i, session_type, be_id,
22217 topology);
22218 clear_bit(idx,
22219 &session_copp_map[i][session_type][be_id]);
22220 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22221 (bedai->passthr_mode[i] == LEGACY_PCM))
22222 msm_pcm_routing_deinit_pp(bedai->port_id,
22223 topology);
22224 }
22225 }
22226
22227 bedai->active = 0;
22228 bedai->sample_rate = 0;
22229 bedai->channel = 0;
22230 for (i = 0; i < MSM_FRONTEND_DAI_MAX; i++) {
22231 if (bedai->passthr_mode[i] != LISTEN)
22232 bedai->passthr_mode[i] = LEGACY_PCM;
22233 }
22234 mutex_unlock(&routing_lock);
22235
22236 return 0;
22237}
22238
22239static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22240{
22241 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22242 unsigned int be_id = rtd->dai_link->id;
22243 int i, path_type, topology;
22244 int session_type = INVALID_SESSION;
22245 struct msm_pcm_routing_bdai_data *bedai;
22246 u32 channels, sample_rate;
22247 uint16_t bits_per_sample = 16, voc_path_type;
22248 struct msm_pcm_routing_fdai_data *fdai;
22249 u32 session_id;
22250 struct media_format_info voc_be_media_format;
22251 bool is_lsm;
22252
22253 pr_debug("%s: substream->pcm->id:%s\n",
22254 __func__, substream->pcm->id);
22255
22256 if (be_id >= MSM_BACKEND_DAI_MAX) {
22257 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22258 return -EINVAL;
22259 }
22260
22261 bedai = &msm_bedais[be_id];
22262
22263 mutex_lock(&routing_lock);
22264 if (bedai->active == 1)
22265 goto done; /* Ignore prepare if back-end already active */
22266
22267 /* AFE port is not active at this point. However, still
22268 * go ahead setting active flag under the notion that
22269 * QDSP6 is able to handle ADM starting before AFE port
22270 * is started.
22271 */
22272 bedai->active = 1;
22273
22274 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22275 if (!(is_mm_lsm_fe_id(i) &&
22276 route_check_fe_id_adm_support(i)))
22277 continue;
22278
22279 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
22280 if (bedai->passthr_mode[i] != LEGACY_PCM)
22281 path_type = ADM_PATH_COMPRESSED_RX;
22282 else
22283 path_type = ADM_PATH_PLAYBACK;
22284 session_type = SESSION_TYPE_RX;
22285 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +020022286 if ((bedai->passthr_mode[i] != LEGACY_PCM) &&
22287 (bedai->passthr_mode[i] != LISTEN))
22288 path_type = ADM_PATH_COMPRESSED_TX;
22289 else
22290 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022291 session_type = SESSION_TYPE_TX;
22292 }
22293
22294 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
22295 (i <= MSM_FRONTEND_DAI_LSM8);
22296 fdai = &fe_dai_map[i][session_type];
22297 if (fdai->strm_id != INVALID_SESSION) {
22298 int app_type, app_type_idx, copp_idx, acdb_dev_id;
22299
22300 if (session_type == SESSION_TYPE_TX &&
22301 fdai->be_srate &&
22302 (fdai->be_srate != bedai->sample_rate)) {
22303 pr_debug("%s: flush strm %d diff BE rates\n",
22304 __func__,
22305 fdai->strm_id);
22306
22307 if (fdai->event_info.event_func)
22308 fdai->event_info.event_func(
22309 MSM_PCM_RT_EVT_BUF_RECFG,
22310 fdai->event_info.priv_data);
22311 fdai->be_srate = 0; /* might not need it */
22312 }
22313 bits_per_sample = msm_routing_get_bit_width(
22314 bedai->format);
22315
22316 app_type =
22317 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
22318 if (app_type && is_lsm) {
22319 app_type_idx =
22320 msm_pcm_routing_get_lsm_app_type_idx(app_type);
22321 sample_rate =
22322 fe_dai_app_type_cfg[i][session_type][be_id]
22323 .sample_rate;
22324 bits_per_sample =
22325 lsm_app_type_cfg[app_type_idx].bit_width;
22326 } else if (app_type) {
22327 app_type_idx =
22328 msm_pcm_routing_get_app_type_idx(app_type);
22329 sample_rate =
22330 fe_dai_app_type_cfg[i][session_type]
22331 [be_id].sample_rate;
22332 bits_per_sample =
22333 app_type_cfg[app_type_idx].bit_width;
22334 } else
22335 sample_rate = bedai->sample_rate;
22336 /*
22337 * check if ADM needs to be configured with different
22338 * channel mapping than backend
22339 */
22340 if (!bedai->adm_override_ch)
22341 channels = bedai->channel;
22342 else
22343 channels = bedai->adm_override_ch;
22344 acdb_dev_id =
22345 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
22346 topology = msm_routing_get_adm_topology(i, session_type,
22347 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020022348
22349 if ((bedai->passthr_mode[i] ==
22350 COMPRESSED_PASSTHROUGH_DSD)
22351 || (bedai->passthr_mode[i] ==
22352 COMPRESSED_PASSTHROUGH_GEN)
22353 || (bedai->passthr_mode[i] ==
22354 COMPRESSED_PASSTHROUGH_IEC61937))
22355 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
22356
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022357 copp_idx = adm_open(bedai->port_id, path_type,
22358 sample_rate, channels, topology,
22359 fdai->perf_mode, bits_per_sample,
22360 app_type, acdb_dev_id);
22361 if ((copp_idx < 0) ||
22362 (copp_idx >= MAX_COPPS_PER_PORT)) {
22363 pr_err("%s: adm open failed\n", __func__);
22364 mutex_unlock(&routing_lock);
22365 return -EINVAL;
22366 }
22367 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
22368 __func__, i, session_type, be_id);
22369 set_bit(copp_idx,
22370 &session_copp_map[i][session_type][be_id]);
22371
22372 if (msm_is_resample_needed(
22373 sample_rate,
22374 bedai->sample_rate))
22375 adm_copp_mfc_cfg(
22376 bedai->port_id, copp_idx,
22377 bedai->sample_rate);
22378
22379 msm_pcm_routing_build_matrix(i, session_type, path_type,
22380 fdai->perf_mode,
22381 bedai->passthr_mode[i]);
22382 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22383 (bedai->passthr_mode[i] == LEGACY_PCM))
22384 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
22385 topology, channels);
22386 }
22387 }
22388
22389 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22390 session_id = msm_pcm_routing_get_voc_sessionid(i);
22391 if (session_id) {
22392 pr_debug("%s voice session_id: 0x%x\n", __func__,
22393 session_id);
22394
22395 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22396 voc_path_type = RX_PATH;
22397 else
22398 voc_path_type = TX_PATH;
22399
22400 voc_set_route_flag(session_id, voc_path_type, 1);
22401
22402 memset(&voc_be_media_format, 0,
22403 sizeof(struct media_format_info));
22404
22405 voc_be_media_format.port_id = bedai->port_id;
22406 voc_be_media_format.num_channels = bedai->channel;
22407 voc_be_media_format.sample_rate = bedai->sample_rate;
22408 voc_be_media_format.bits_per_sample = bedai->format;
22409 /* Defaulting this to 1 for voice call usecases */
22410 voc_be_media_format.channel_mapping[0] = 1;
22411
22412 voc_set_device_config(session_id, voc_path_type,
22413 &voc_be_media_format);
22414
22415 if (voc_get_route_flag(session_id, RX_PATH) &&
22416 voc_get_route_flag(session_id, TX_PATH))
22417 voc_enable_device(session_id);
22418 }
22419 }
22420
22421 /* Check if backend is an external ec ref port and set as needed */
22422 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
22423
22424 memset(&voc_be_media_format, 0,
22425 sizeof(struct media_format_info));
22426
22427 /* Get format info for ec ref port from msm_bedais[] */
22428 voc_be_media_format.port_id = bedai->port_id;
22429 voc_be_media_format.num_channels = bedai->channel;
22430 voc_be_media_format.bits_per_sample = bedai->format;
22431 voc_be_media_format.sample_rate = bedai->sample_rate;
22432 /* Defaulting this to 1 for voice call usecases */
22433 voc_be_media_format.channel_mapping[0] = 1;
22434 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
22435 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
22436 __func__, voc_be_media_format.port_id,
22437 voc_be_media_format.num_channels,
22438 voc_be_media_format.bits_per_sample,
22439 voc_be_media_format.sample_rate);
22440 }
22441
22442done:
22443 mutex_unlock(&routing_lock);
22444
22445 return 0;
22446}
22447
22448static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
22449 int fe_id)
22450{
22451 int index, topo_id, be_idx;
22452 unsigned long pp_config = 0;
22453 bool mute_on;
22454 int latency;
22455 bool compr_passthr_mode = true;
22456
22457 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
22458
22459 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
22460 pr_err("%s: Device pp params on invalid port %d\n",
22461 __func__, port_id);
22462 return -EINVAL;
22463 }
22464
22465 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22466 if (port_id == msm_bedais[be_idx].port_id)
22467 break;
22468 }
22469
22470 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22471 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22472 return -EINVAL;
22473 }
22474
22475 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22476 if (msm_bedais_pp_params[index].port_id == port_id)
22477 break;
22478 }
22479 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22480 pr_err("%s: Invalid backend pp params index %d\n",
22481 __func__, index);
22482 return -EINVAL;
22483 }
22484
22485 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
22486 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
22487 pr_err("%s: Invalid passthrough topology 0x%x\n",
22488 __func__, topo_id);
22489 return -EINVAL;
22490 }
22491
22492 if ((msm_bedais[be_idx].passthr_mode[fe_id] == LEGACY_PCM) ||
22493 (msm_bedais[be_idx].passthr_mode[fe_id] == LISTEN))
22494 compr_passthr_mode = false;
22495
22496 pp_config = msm_bedais_pp_params[index].pp_params_config;
22497 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
22498 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22499 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
22500 mute_on = msm_bedais_pp_params[index].mute_on;
22501 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22502 adm_send_compressed_device_mute(port_id,
22503 copp_idx,
22504 mute_on);
22505 }
22506 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
22507 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22508 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
22509 &pp_config);
22510 latency = msm_bedais_pp_params[index].latency;
22511 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22512 adm_send_compressed_device_latency(port_id,
22513 copp_idx,
22514 latency);
22515 }
22516 return 0;
22517}
22518
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022519static uint32_t msm_routing_get_topology(size_t data_size, void *data)
22520{
22521 uint32_t topology = NULL_COPP_TOPOLOGY;
22522 void *cal_info = NULL;
22523 uint32_t size = 0;
22524
22525 /* Retrieve cal_info size from cal data*/
22526 size = data_size - sizeof(struct audio_cal_type_basic);
22527 cal_info = kzalloc(size, GFP_KERNEL);
22528
22529 if (!cal_info)
22530 goto done;
22531
22532 memcpy(cal_info,
22533 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
22534
22535 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
22536 kfree(cal_info);
22537 cal_info = NULL;
22538
22539done:
22540 pr_debug("%s: Using topology %d\n", __func__, topology);
22541
22542 return topology;
22543}
22544
22545static void msm_routing_load_topology(size_t data_size, void *data)
22546{
22547 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022548 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022549
22550 topology_id = msm_routing_get_topology(data_size, data);
22551 if (topology_id != NULL_COPP_TOPOLOGY)
22552 ret = q6core_load_unload_topo_modules(topology_id,
22553 CORE_LOAD_TOPOLOGY);
22554 if (ret < 0)
22555 pr_debug("%s %d load topology failed\n",
22556 __func__, topology_id);
22557
22558}
22559
22560static void msm_routing_unload_topology(uint32_t topology_id)
22561{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022562 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022563
22564 if (topology_id != NULL_COPP_TOPOLOGY)
22565 ret = q6core_load_unload_topo_modules(topology_id,
22566 CORE_UNLOAD_TOPOLOGY);
22567 if (ret < 0)
22568 pr_debug("%s %d unload topology failed\n",
22569 __func__, topology_id);
22570
22571}
22572
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022573static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22574 struct snd_ctl_elem_value *ucontrol)
22575{
22576 int pp_id = ucontrol->value.integer.value[0];
22577 int port_id = 0;
22578 int index, be_idx, i, topo_id, idx;
22579 bool mute;
22580 int latency;
22581 bool compr_passthr_mode = true;
22582
22583 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
22584
22585 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22586 port_id = msm_bedais[be_idx].port_id;
22587 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
22588 break;
22589 }
22590
22591 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22592 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22593 return -EINVAL;
22594 }
22595
22596 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22597 if (msm_bedais_pp_params[index].port_id == port_id)
22598 break;
22599 }
22600 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22601 pr_err("%s: Invalid pp params backend index %d\n",
22602 __func__, index);
22603 return -EINVAL;
22604 }
22605
22606 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
22607 MSM_FRONTEND_DAI_MM_SIZE) {
22608 if ((msm_bedais[be_idx].passthr_mode[i] == LEGACY_PCM) ||
22609 (msm_bedais[be_idx].passthr_mode[i] == LISTEN))
22610 compr_passthr_mode = false;
22611
22612 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22613 unsigned long copp =
22614 session_copp_map[i]
22615 [SESSION_TYPE_RX][be_idx];
22616 if (!test_bit(idx, &copp))
22617 continue;
22618 topo_id = adm_get_topology_for_port_copp_idx(port_id,
22619 idx);
22620 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
22621 continue;
22622 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
22623 __func__, port_id, copp, msm_bedais[be_idx].active,
22624 msm_bedais[be_idx].passthr_mode[i]);
22625 switch (pp_id) {
22626 case ADM_PP_PARAM_MUTE_ID:
22627 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22628 mute = ucontrol->value.integer.value[1] ? true : false;
22629 msm_bedais_pp_params[index].mute_on = mute;
22630 set_bit(ADM_PP_PARAM_MUTE_BIT,
22631 &msm_bedais_pp_params[index].pp_params_config);
22632 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22633 adm_send_compressed_device_mute(port_id,
22634 idx, mute);
22635 break;
22636 case ADM_PP_PARAM_LATENCY_ID:
22637 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22638 msm_bedais_pp_params[index].latency =
22639 ucontrol->value.integer.value[1];
22640 set_bit(ADM_PP_PARAM_LATENCY_BIT,
22641 &msm_bedais_pp_params[index].pp_params_config);
22642 latency = msm_bedais_pp_params[index].latency =
22643 ucontrol->value.integer.value[1];
22644 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22645 adm_send_compressed_device_latency(port_id,
22646 idx, latency);
22647 break;
22648 default:
22649 pr_info("%s, device pp param %d not supported\n",
22650 __func__, pp_id);
22651 break;
22652 }
22653 }
22654 }
22655 return 0;
22656}
22657
22658static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22659 struct snd_ctl_elem_value *ucontrol)
22660{
22661 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
22662 return 0;
22663}
22664
22665static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
22666 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
22667 0, 3, msm_routing_get_device_pp_params_mixer,
22668 msm_routing_put_device_pp_params_mixer),
22669};
22670
22671static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
22672 struct snd_ctl_elem_value *ucontrol)
22673{
22674 ucontrol->value.integer.value[0] =
22675 core_get_license_status(ASM_MEDIA_FMT_APTX);
22676 pr_debug("%s: status %ld\n", __func__,
22677 ucontrol->value.integer.value[0]);
22678 return 0;
22679}
22680
22681static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
22682 struct snd_ctl_elem_value *ucontrol)
22683{
22684 int32_t status = 0;
22685
22686 status = core_set_license(ucontrol->value.integer.value[0],
22687 APTX_CLASSIC_DEC_LICENSE_ID);
22688 pr_debug("%s: status %d\n", __func__, status);
22689 return status;
22690}
22691
22692static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
22693 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
22694 0xFFFF, 0, msm_aptx_dec_license_control_get,
22695 msm_aptx_dec_license_control_put),
22696};
22697
22698static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
22699 struct snd_ctl_elem_info *uinfo)
22700{
22701 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22702 uinfo->count = sizeof(be_dai_name_table);
22703 return 0;
22704}
22705
22706static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
22707 unsigned int __user *bytes,
22708 unsigned int size)
22709{
22710 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022711 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022712
22713 if (size < sizeof(be_dai_name_table)) {
22714 pr_err("%s: invalid size %d requested, returning\n",
22715 __func__, size);
22716 ret = -EINVAL;
22717 goto done;
22718 }
22719
22720 /*
22721 * Fill be_dai_name_table from msm_bedais table to reduce code changes
22722 * needed when adding new backends
22723 */
22724 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
22725 be_dai_name_table[i].be_id = i;
22726 strlcpy(be_dai_name_table[i].be_name,
22727 msm_bedais[i].name,
22728 LPASS_BE_NAME_MAX_LENGTH);
22729 }
22730
22731 ret = copy_to_user(bytes, &be_dai_name_table,
22732 sizeof(be_dai_name_table));
22733 if (ret) {
22734 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
22735 ret = -EFAULT;
22736 }
22737
22738done:
22739 return ret;
22740}
22741
22742static const struct snd_kcontrol_new
22743 msm_routing_be_dai_name_table_mixer_controls[] = {
22744 {
22745 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
22746 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
22747 .info = msm_routing_be_dai_name_table_info,
22748 .name = "Backend DAI Name Table",
22749 .tlv.c = snd_soc_bytes_tlv_callback,
22750 .private_value = (unsigned long) &(struct soc_bytes_ext) {
22751 .max = sizeof(be_dai_name_table),
22752 .get = msm_routing_be_dai_name_table_tlv_get,
22753 }
22754 },
22755};
22756
22757static int msm_routing_stereo_channel_reverse_control_get(
22758 struct snd_kcontrol *kcontrol,
22759 struct snd_ctl_elem_value *ucontrol)
22760{
22761 ucontrol->value.integer.value[0] = swap_ch;
22762 pr_debug("%s: Swap channel value: %ld\n", __func__,
22763 ucontrol->value.integer.value[0]);
22764 return 0;
22765}
22766
22767static int msm_routing_stereo_channel_reverse_control_put(
22768 struct snd_kcontrol *kcontrol,
22769 struct snd_ctl_elem_value *ucontrol)
22770{
22771 int i, idx, be_index, port_id;
22772 int ret = 0;
22773 unsigned long copp;
22774
22775 pr_debug("%s Swap channel value:%ld\n", __func__,
22776 ucontrol->value.integer.value[0]);
22777
22778 swap_ch = ucontrol->value.integer.value[0];
22779
22780 mutex_lock(&routing_lock);
22781 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
22782 port_id = msm_bedais[be_index].port_id;
22783 if (!msm_bedais[be_index].active)
22784 continue;
22785
22786 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
22787 MSM_FRONTEND_DAI_MM_SIZE) {
22788 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
22789 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22790 if (!test_bit(idx, &copp))
22791 continue;
22792
22793 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
22794 __func__, port_id, idx);
22795 ret = adm_swap_speaker_channels(
22796 port_id, idx,
22797 msm_bedais[be_index].sample_rate,
22798 swap_ch);
22799 if (ret) {
22800 pr_err("%s:Swap_channel failed, err=%d\n",
22801 __func__, ret);
22802 goto done;
22803 }
22804 }
22805 }
22806 }
22807done:
22808 mutex_unlock(&routing_lock);
22809 return ret;
22810}
22811
22812static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
22813 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
22814 1, 0, msm_routing_stereo_channel_reverse_control_get,
22815 msm_routing_stereo_channel_reverse_control_put),
22816};
22817
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080022818static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
22819 struct snd_ctl_elem_info *uinfo)
22820{
22821 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
22822 uinfo->count = 1;
22823 return 0;
22824}
22825
22826static int msm_routing_instance_id_support_put(
22827 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
22828{
22829 bool supported = ucontrol->value.integer.value[0] ? true : false;
22830
22831 q6common_update_instance_id_support(supported);
22832 return 0;
22833}
22834
22835static int msm_routing_instance_id_support_get(
22836 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
22837{
22838 bool supported = false;
22839
22840 supported = q6common_is_instance_id_supported();
22841 ucontrol->value.integer.value[0] = supported ? 1 : 0;
22842
22843 return 0;
22844}
22845
22846static const struct snd_kcontrol_new
22847 msm_routing_feature_support_mixer_controls[] = {
22848 {
22849 .access = SNDRV_CTL_ELEM_ACCESS_READ |
22850 SNDRV_CTL_ELEM_ACCESS_WRITE,
22851 .info = msm_routing_instance_id_support_info,
22852 .name = "Instance ID Support",
22853 .put = msm_routing_instance_id_support_put,
22854 .get = msm_routing_instance_id_support_get,
22855 },
22856};
22857
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022858static const struct snd_pcm_ops msm_routing_pcm_ops = {
22859 .hw_params = msm_pcm_routing_hw_params,
22860 .close = msm_pcm_routing_close,
22861 .prepare = msm_pcm_routing_prepare,
22862};
22863
22864/* Not used but frame seems to require it */
22865static int msm_routing_probe(struct snd_soc_platform *platform)
22866{
22867 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
22868 ARRAY_SIZE(msm_qdsp6_widgets));
22869 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
22870 ARRAY_SIZE(intercon));
22871
22872 snd_soc_dapm_new_widgets(platform->component.dapm.card);
22873
22874 snd_soc_add_platform_controls(platform, lsm_controls,
22875 ARRAY_SIZE(lsm_controls));
22876
22877 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
22878 ARRAY_SIZE(aanc_slim_0_rx_mux));
22879
Sudheer Papothic07b37a2018-05-04 05:56:47 +053022880 snd_soc_add_platform_controls(platform, aanc_noise_level,
22881 ARRAY_SIZE(aanc_noise_level));
22882
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022883 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
22884 ARRAY_SIZE(msm_voc_session_controls));
22885
22886 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
22887 ARRAY_SIZE(app_type_cfg_controls));
22888
22889 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
22890 ARRAY_SIZE(lsm_app_type_cfg_controls));
22891
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022892 snd_soc_add_platform_controls(platform, module_cfg_controls,
22893 ARRAY_SIZE(module_cfg_controls));
22894
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022895 snd_soc_add_platform_controls(platform,
22896 stereo_to_custom_stereo_controls,
22897 ARRAY_SIZE(stereo_to_custom_stereo_controls));
22898
22899 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
22900 ARRAY_SIZE(ec_ref_param_controls));
22901
22902 snd_soc_add_platform_controls(platform, channel_mixer_controls,
22903 ARRAY_SIZE(channel_mixer_controls));
22904
22905 msm_qti_pp_add_controls(platform);
22906
22907 msm_dts_srs_tm_add_controls(platform);
22908
22909 msm_dolby_dap_add_controls(platform);
22910
22911 snd_soc_add_platform_controls(platform,
22912 use_ds1_or_ds2_controls,
22913 ARRAY_SIZE(use_ds1_or_ds2_controls));
22914
22915 snd_soc_add_platform_controls(platform,
22916 device_pp_params_mixer_controls,
22917 ARRAY_SIZE(device_pp_params_mixer_controls));
22918
22919 snd_soc_add_platform_controls(platform,
22920 msm_routing_be_dai_name_table_mixer_controls,
22921 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
22922
22923 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
22924 ARRAY_SIZE(msm_source_tracking_controls));
22925 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
22926 ARRAY_SIZE(adm_channel_config_controls));
22927
22928 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
22929 ARRAY_SIZE(aptx_dec_license_controls));
22930 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
22931 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080022932 snd_soc_add_platform_controls(
22933 platform, msm_routing_feature_support_mixer_controls,
22934 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
22935
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022936 return 0;
22937}
22938
22939int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
22940{
22941 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
22942}
22943
22944void msm_routing_pcm_free(struct snd_pcm *pcm)
22945{
22946 msm_pcm_routing_hwdep_free(pcm);
22947}
22948
22949static struct snd_soc_platform_driver msm_soc_routing_platform = {
22950 .ops = &msm_routing_pcm_ops,
22951 .probe = msm_routing_probe,
22952 .pcm_new = msm_routing_pcm_new,
22953 .pcm_free = msm_routing_pcm_free,
22954};
22955
22956static int msm_routing_pcm_probe(struct platform_device *pdev)
22957{
22958
22959 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
22960 return snd_soc_register_platform(&pdev->dev,
22961 &msm_soc_routing_platform);
22962}
22963
22964static int msm_routing_pcm_remove(struct platform_device *pdev)
22965{
22966 snd_soc_unregister_platform(&pdev->dev);
22967 return 0;
22968}
22969
22970static const struct of_device_id msm_pcm_routing_dt_match[] = {
22971 {.compatible = "qcom,msm-pcm-routing"},
22972 {}
22973};
22974MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
22975
22976static struct platform_driver msm_routing_pcm_driver = {
22977 .driver = {
22978 .name = "msm-pcm-routing",
22979 .owner = THIS_MODULE,
22980 .of_match_table = msm_pcm_routing_dt_match,
22981 },
22982 .probe = msm_routing_pcm_probe,
22983 .remove = msm_routing_pcm_remove,
22984};
22985
22986int msm_routing_check_backend_enabled(int fedai_id)
22987{
22988 int i;
22989
22990 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
22991 /* bad ID assigned in machine driver */
22992 pr_err("%s: bad MM ID\n", __func__);
22993 return 0;
22994 }
22995 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
22996 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
22997 return msm_bedais[i].active;
22998 }
22999 return 0;
23000}
23001
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023002static int get_cal_type_index(int32_t cal_type)
23003{
23004 int ret = -EINVAL;
23005
23006 switch (cal_type) {
23007 case ADM_TOPOLOGY_CAL_TYPE:
23008 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23009 break;
23010 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23011 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23012 break;
23013 default:
23014 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23015 }
23016 return ret;
23017}
23018
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023019static int msm_routing_set_cal(int32_t cal_type,
23020 size_t data_size, void *data)
23021{
23022 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023023 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023024 pr_debug("%s\n", __func__);
23025
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023026 cal_index = get_cal_type_index(cal_type);
23027 if (cal_index < 0) {
23028 pr_err("%s: Could not get cal index %d\n",
23029 __func__, cal_index);
23030 ret = -EINVAL;
23031 goto done;
23032 }
23033
23034 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023035 if (ret < 0) {
23036 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23037 __func__, ret, cal_type);
23038 ret = -EINVAL;
23039 goto done;
23040 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023041 /* Pre-load if it is ADM topology */
23042 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23043 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23044 msm_routing_load_topology(data_size, data);
23045 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023046done:
23047 return ret;
23048}
23049
23050static void msm_routing_delete_cal_data(void)
23051{
23052 pr_debug("%s\n", __func__);
23053
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023054 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023055}
23056
23057static int msm_routing_init_cal_data(void)
23058{
23059 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023060 struct cal_type_info cal_type_info[] = {
23061 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023062 {NULL, NULL, NULL,
23063 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023064 {NULL, NULL, cal_utils_match_buf_num} },
23065
23066 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23067 {NULL, NULL, NULL,
23068 msm_routing_set_cal, NULL, NULL} },
23069 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023070 };
23071 pr_debug("%s\n", __func__);
23072
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023073 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23074 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023075 if (ret < 0) {
23076 pr_err("%s: could not create cal type!\n",
23077 __func__);
23078 ret = -EINVAL;
23079 goto err;
23080 }
23081
23082 return ret;
23083err:
23084 msm_routing_delete_cal_data();
23085 return ret;
23086}
23087
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023088int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023089{
23090 mutex_init(&routing_lock);
23091 if (msm_routing_init_cal_data())
23092 pr_err("%s: could not init cal data!\n", __func__);
23093
23094 afe_set_routing_callback(
23095 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23096
23097 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23098 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23099
23100 return platform_driver_register(&msm_routing_pcm_driver);
23101}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023102
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023103void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023104{
23105 msm_routing_delete_cal_data();
23106 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23107 mutex_destroy(&routing_lock);
23108 platform_driver_unregister(&msm_routing_pcm_driver);
23109}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023110
23111MODULE_DESCRIPTION("MSM routing platform driver");
23112MODULE_LICENSE("GPL v2");